diff --git a/.gitignore b/.gitignore index f4f4d8ff21..bafbee69d8 100644 --- a/.gitignore +++ b/.gitignore @@ -201,5 +201,5 @@ tools/MapAtmosFixer/MapAtmosFixer/bin/* .atom-build.json #extra map stuff -_maps/backup/ -_maps/templates.dm +/_maps/**/backup/ +/_maps/templates.dm diff --git a/.travis.yml b/.travis.yml index bcf2b86fb0..05840443b6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,7 @@ matrix: include: - env: - BUILD_TOOLS=true + name: "Build Tools" addons: apt: packages: @@ -18,6 +19,7 @@ matrix: - env: - BUILD_TESTING=true - BUILD_TOOLS=false + name: "Build All Maps" addons: apt: packages: @@ -28,6 +30,7 @@ matrix: - env: - BUILD_TESTING=false - BUILD_TOOLS=false + name: "Build and Run Unit Tests" addons: mariadb: '10.2' apt: diff --git a/BSQL.dll b/BSQL.dll index 4e19139307..861492c8b4 100644 Binary files a/BSQL.dll and b/BSQL.dll differ diff --git a/Dockerfile b/Dockerfile index 4092ccb418..dd58c91541 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM tgstation/byond:512.1427 as base +FROM tgstation/byond:512.1441 as base #above version must be the same as the one in dependencies.sh FROM base as build_base diff --git a/README.md b/README.md index 0596aae25c..bb572af92f 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ where the admin rank must be properly capitalised. This codebase also depends on a native library called rust-g. A precompiled Windows DLL is included in this repository, but Linux users will need to build and install it themselves. Directions can be found at the [rust-g -repo](https://github.com/tgstation13/rust-g). +repo](https://github.com/tgstation/rust-g). Finally, to start the server, run Dream Daemon and enter the path to your compiled tgstation.dmb file. Make sure to set the port to the one you diff --git a/SQL/admin_import_2018-02-03.py b/SQL/admin_import_2018-02-03.py index 6bd8892b5e..b9ce28cef1 100644 --- a/SQL/admin_import_2018-02-03.py +++ b/SQL/admin_import_2018-02-03.py @@ -93,7 +93,7 @@ def parse_text_flags(text, previous): matches = re.match("(.+)\\b\\s+=\\s+(.+)", line) ckey = "".join((c for c in matches.group(1) if c not in ckeyformat)).lower() rank = "".join((c for c in matches.group(2) if c not in ckeyExformat)) - cursor.execute("INSERT INTO {0} (ckey, rank) VALUES ('{1}', '{2}')".format(admin_table, ckey, rank)) + cursor.execute("INSERT INTO {0} (ckey, rank) VALUES ('{1}', '{2}')".format(admin_table, ckey, rank)) db.commit() cursor.close() print("Import complete.") diff --git a/SQL/database_changelog.txt b/SQL/database_changelog.txt index d3339df1fb..fc93bb8fec 100644 --- a/SQL/database_changelog.txt +++ b/SQL/database_changelog.txt @@ -1,15 +1,23 @@ Any time you make a change to the schema files, remember to increment the database schema version. Generally increment the minor number, major should be reserved for significant changes to the schema. Both values go up to 255. -The latest database version is 4.4; The query to update the schema revision table is: +The latest database version is 4.5; The query to update the schema revision table is: -INSERT INTO `schema_revision` (`major`, `minor`) VALUES (4, 4); +INSERT INTO `schema_revision` (`major`, `minor`) VALUES (4, 5); or -INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (4, 4); +INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (4, 5); In any query remember to add a prefix to the table names if you use one. ---------------------------------------------------- +Version 4.5, 9 July 2018, by Jordie0608 +Modified table `player`, adding column `byond_key` to store a user's key along with their ckey. +To populate this new column run the included script 'populate_key_2018-07', see the file for use instructions. + +ALTER TABLE `player` ADD `byond_key` VARCHAR(32) DEFAULT NULL AFTER `ckey`; + +---------------------------------------------------- + Version 4.4, 9 May 2018, by Jordie0608 Modified table `round`, renaming column `start_datetime` to `initialize_datetime` and `end_datetime` to `shutdown_datetime` and adding columns to replace both under the same name in preparation for changes to TGS server initialization. diff --git a/SQL/populate_key_2018-07-09.py b/SQL/populate_key_2018-07-09.py new file mode 100644 index 0000000000..82e7a3f4af --- /dev/null +++ b/SQL/populate_key_2018-07-09.py @@ -0,0 +1,92 @@ +#Python 3+ Script for populating the key of all ckeys in player table made by Jordie0608 +# +#Before starting ensure you have installed the mysqlclient package https://github.com/PyMySQL/mysqlclient-python +#It can be downloaded from command line with pip: +#pip install mysqlclient +#And that you have run the most recent commands listed in database_changelog.txt +# +#To view the parameters for this script, execute it with the argument --help +#All the positional arguments are required, remember to include a prefixe in your table name if you use one +#--useckey and --onlynull are optional arguments, see --help for their function +#An example of the command used to execute this script from powershell: +#python populate_key_2018-07-09.py "localhost" "root" "password" "feedback" "SS13_player" --onlynull --useckey +# +#This script requires an internet connection to function +#Sometimes byond.com fails to return the page for a valid ckey, this can be a temporary problem and may be resolved by rerunning the script +#You can have the script use the existing ckey instead if the key is unable to be parsed with the --useckey optional argument +#To make the script only iterate on rows that failed to parse a ckey and have a null byond_key column, use the --onlynull optional argument +#To make the script only iterate on rows that have a matching ckey and byond_key column, use the --onlyckeymatch optional argument +#The --onlynull and --onlyckeymatch arguments are mutually exclusive, the script can't be run with both of them enabled +# +#It's safe to run this script with your game server(s) active. + +import MySQLdb +import argparse +import re +import sys +from urllib.request import urlopen +from datetime import datetime + +if sys.version_info[0] < 3: + raise Exception("Python must be at least version 3 for this script.") +query_values = "" +current_round = 0 +parser = argparse.ArgumentParser() +parser.add_argument("address", help="MySQL server address (use localhost for the current computer)") +parser.add_argument("username", help="MySQL login username") +parser.add_argument("password", help="MySQL login password") +parser.add_argument("database", help="Database name") +parser.add_argument("playertable", help="Name of the player table (remember a prefix if you use one)") +parser.add_argument("--useckey", help="Use the player's ckey for their key if unable to contact or parse their member page", action="store_true") +group = parser.add_mutually_exclusive_group() +group.add_argument("--onlynull", help="Only try to update rows if their byond_key column is null, mutually exclusive with --onlyckeymatch", action="store_true") +group.add_argument("--onlyckeymatch", help="Only try to update rows that have matching ckey and byond_key columns from the --useckey argument, mutually exclusive with --onlynull", action="store_true") +args = parser.parse_args() +where = "" +if args.onlynull: + where = " WHERE byond_key IS NULL" +if args.onlyckeymatch: + where = " WHERE byond_key = ckey" +db=MySQLdb.connect(host=args.address, user=args.username, passwd=args.password, db=args.database) +cursor=db.cursor() +player_table = args.playertable +cursor.execute("SELECT ckey FROM {0}{1}".format(player_table, where)) +ckey_list = cursor.fetchall() +failed_ckeys = [] +start_time = datetime.now() +success = 0 +fail = 0 +print("Beginning script at {0}".format(start_time.strftime("%Y-%m-%d %H:%M:%S"))) +if not ckey_list: + print("Query returned no rows") +for current_ckey in ckey_list: + link = urlopen("https://secure.byond.com/members/{0}/?format=text".format(current_ckey[0])) + data = link.read() + data = data.decode("ISO-8859-1") + match = re.search("\tkey = \"(.+)\"", data) + if match: + key = match.group(1) + success += 1 + else: + fail += 1 + failed_ckeys.append(current_ckey[0]) + msg = "Failed to parse a key for {0}".format(current_ckey[0]) + if args.useckey: + msg += ", using their ckey instead" + print(msg) + key = current_ckey[0] + else: + print(msg) + continue + cursor.execute("UPDATE {0} SET byond_key = \'{1}\' WHERE ckey = \'{2}\'".format(player_table, key, current_ckey[0])) + db.commit() +end_time = datetime.now() +print("Script completed at {0} with duration {1}".format(datetime.now().strftime("%Y-%m-%d %H:%M:%S"), end_time - start_time)) +if failed_ckeys: + if args.useckey: + print("The following ckeys failed to parse a key so their ckey was used instead:") + else: + print("The following ckeys failed to parse a key and were skipped:") + print("\n".join(failed_ckeys)) + print("Keys successfully parsed: {0} Keys failed parsing: {1}".format(success, fail)) +cursor.close() diff --git a/SQL/tgstation_schema.sql b/SQL/tgstation_schema.sql index dad9f1e766..480ad58ff4 100644 --- a/SQL/tgstation_schema.sql +++ b/SQL/tgstation_schema.sql @@ -309,6 +309,7 @@ DROP TABLE IF EXISTS `player`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `player` ( `ckey` varchar(32) NOT NULL, + `byond_key` varchar(32) DEFAULT NULL, `firstseen` datetime NOT NULL, `firstseen_round_id` int(11) unsigned NOT NULL, `lastseen` datetime NOT NULL, diff --git a/SQL/tgstation_schema_prefixed.sql b/SQL/tgstation_schema_prefixed.sql index 8c9b15e894..2842ee9122 100644 --- a/SQL/tgstation_schema_prefixed.sql +++ b/SQL/tgstation_schema_prefixed.sql @@ -309,6 +309,7 @@ DROP TABLE IF EXISTS `SS13_player`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `SS13_player` ( `ckey` varchar(32) NOT NULL, + `byond_key` varchar(32) DEFAULT NULL, `firstseen` datetime NOT NULL, `firstseen_round_id` int(11) unsigned NOT NULL, `lastseen` datetime NOT NULL, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm index 04c4fae9fb..ecaff8ad07 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm @@ -196,7 +196,7 @@ /turf/open/floor/plasteel/asteroid, /area/ruin/powered/beach) "aO" = ( -/obj/structure/stacklifter, +/obj/structure/weightmachine/stacklifter, /turf/open/floor/plating/beach/sand, /area/ruin/powered/beach) "aP" = ( @@ -249,7 +249,7 @@ /turf/open/floor/plating/beach/sand, /area/ruin/powered/beach) "bb" = ( -/obj/structure/weightlifter, +/obj/structure/weightmachine/weightlifter, /turf/open/floor/plating/beach/sand, /area/ruin/powered/beach) "bc" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm index d3ebc38fb7..21f2d38090 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm @@ -57,11 +57,7 @@ /area/ruin/unpowered) "k" = ( /obj/structure/table/wood, -/obj/effect/spawner/lootdrop{ - loot = list(/obj/item/pizzabox/margherita = 3, /obj/item/pizzabox/meat = 3, /obj/item/pizzabox/mushroom = 3, /obj/item/pizzabox/bomb = 1); - lootdoubles = 0; - name = "pizza spawner" - }, +/obj/effect/spawner/lootdrop/pizzaparty, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" @@ -72,11 +68,7 @@ dir = 4 }, /obj/structure/table/wood, -/obj/effect/spawner/lootdrop{ - loot = list(/obj/item/pizzabox/margherita = 3, /obj/item/pizzabox/meat = 3, /obj/item/pizzabox/mushroom = 3, /obj/item/pizzabox/bomb = 1); - lootdoubles = 0; - name = "pizza spawner" - }, +/obj/effect/spawner/lootdrop/pizzaparty, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/wood{ @@ -161,11 +153,7 @@ /area/ruin/unpowered) "x" = ( /obj/structure/table/wood, -/obj/effect/spawner/lootdrop{ - loot = list(/obj/item/pizzabox/margherita = 3, /obj/item/pizzabox/meat = 3, /obj/item/pizzabox/mushroom = 3, /obj/item/pizzabox/bomb = 1); - lootdoubles = 0; - name = "pizza spawner" - }, +/obj/effect/spawner/lootdrop/pizzaparty, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_puzzle.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_puzzle.dmm new file mode 100644 index 0000000000..911ee904fe --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_puzzle.dmm @@ -0,0 +1,47 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/lavaland/surface/outdoors) +"b" = ( +/obj/effect/sliding_puzzle/lavaland, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"c" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) + +(1,1,1) = {" +a +a +a +a +a +"} +(2,1,1) = {" +a +c +c +c +a +"} +(3,1,1) = {" +a +c +b +c +a +"} +(4,1,1) = {" +a +c +c +c +a +"} +(5,1,1) = {" +a +a +a +a +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index 8813d563d0..ec27eb9e1e 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -51,7 +51,7 @@ /area/ruin/unpowered/syndicate_lava_base/main) "ah" = ( /obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks/beer{ +/obj/machinery/chem_dispenser/drinks/beer/fullupgrade{ dir = 1 }, /obj/structure/sign/barsign{ @@ -63,11 +63,69 @@ /area/ruin/unpowered/syndicate_lava_base/bar) "ai" = ( /obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks{ +/obj/machinery/chem_dispenser/drinks/fullupgrade{ dir = 1 }, /turf/open/floor/wood, /area/ruin/unpowered/syndicate_lava_base/bar) +"aj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/medical/syndicate_access, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/ruin/unpowered/syndicate_lava_base/virology) +"ak" = ( +/obj/machinery/vending/boozeomat/syndicate_access, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_lava_base/bar) +"al" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/medical/syndicate_access, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/syndicate_lava_base/medbay) +"am" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/cell/high/plus{ + pixel_x = -5; + pixel_y = 9 + }, +/obj/item/stock_parts/cell/high/plus{ + pixel_x = -8; + pixel_y = -3 + }, +/obj/item/multitool, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/ruin/unpowered/syndicate_lava_base/circuits) +"an" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/cell/high/plus{ + pixel_x = 7; + pixel_y = -5 + }, +/obj/item/stock_parts/cell/high/plus{ + pixel_x = -8; + pixel_y = -3 + }, +/obj/item/multitool{ + pixel_x = -1; + pixel_y = -13 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/ruin/unpowered/syndicate_lava_base/circuits) +"ao" = ( +/obj/structure/table/reinforced, +/obj/item/integrated_circuit_printer/upgraded, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/ruin/unpowered/syndicate_lava_base/circuits) "ap" = ( /obj/machinery/light/small{ dir = 1 @@ -77,6 +135,13 @@ "aq" = ( /turf/open/floor/engine, /area/ruin/unpowered/syndicate_lava_base/testlab) +"ar" = ( +/obj/structure/table/reinforced, +/obj/item/integrated_circuit_printer/upgraded, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/ruin/unpowered/syndicate_lava_base/circuits) "as" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ruin/unpowered/syndicate_lava_base/chemistry) @@ -88,6 +153,21 @@ }, /turf/open/floor/plating, /area/ruin/unpowered/syndicate_lava_base/chemistry) +"au" = ( +/obj/structure/grille, +/obj/structure/window/plastitanium, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor{ + id = "lavalandsyndi_circuits" + }, +/turf/open/floor/plating, +/area/ruin/unpowered/syndicate_lava_base/circuits) +"aF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ruin/unpowered/syndicate_lava_base/testlab) "aL" = ( /turf/closed/wall/mineral/plastitanium/explosive, /area/ruin/unpowered/syndicate_lava_base/testlab) @@ -100,6 +180,63 @@ /obj/machinery/chem_dispenser/fullupgrade, /turf/open/floor/plasteel, /area/ruin/unpowered/syndicate_lava_base/chemistry) +"aO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/ruin/unpowered/syndicate_lava_base/circuits) +"aP" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Circuit Lab APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/ruin/unpowered/syndicate_lava_base/circuits) +"aR" = ( +/turf/open/floor/plasteel/floorgrime, +/area/ruin/unpowered/syndicate_lava_base/circuits) +"aS" = ( +/turf/open/floor/plasteel, +/area/ruin/unpowered/syndicate_lava_base/circuits) +"aT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/unpowered/syndicate_lava_base/circuits) +"aU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/unpowered/syndicate_lava_base/circuits) +"aV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/unpowered/syndicate_lava_base/circuits) "aW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -110,21 +247,70 @@ /obj/machinery/door/airlock/research, /turf/open/floor/plasteel, /area/ruin/unpowered/syndicate_lava_base/circuits) +"aX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/obj/machinery/airalarm/syndicate{ + pixel_y = 24 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/unpowered/syndicate_lava_base/circuits) +"ba" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "lavalandsyndi_circuits"; + name = "Circuitry Blast Door Control"; + pixel_x = -26; + pixel_y = -26; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/ruin/unpowered/syndicate_lava_base/circuits) "bb" = ( /obj/structure/chair/office/light{ dir = 4 }, -/turf/open/floor/plasteel/white/side, +/turf/open/floor/plasteel/white/corner, /area/ruin/unpowered/syndicate_lava_base/circuits) -"bh" = ( -/obj/structure/table/reinforced, -/obj/item/integrated_circuit_printer/upgraded, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 +"bd" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/ruin/unpowered/syndicate_lava_base/circuits) +"be" = ( +/obj/structure/table/glass, +/obj/item/integrated_electronics/analyzer{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/integrated_electronics/analyzer{ + pixel_x = 8; + pixel_y = 1 }, /turf/open/floor/plasteel/white/side, /area/ruin/unpowered/syndicate_lava_base/circuits) +"bf" = ( +/obj/structure/table/glass, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel/white/side, +/area/ruin/unpowered/syndicate_lava_base/circuits) +"bg" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal/fifty, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/ruin/unpowered/syndicate_lava_base/circuits) "cA" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/chemistry, @@ -159,7 +345,8 @@ req_access_txt = "150" }, /obj/effect/decal/cleanable/dirt, -/obj/item/storage/box/beakers, +/obj/item/storage/box/beakers/bluespace, +/obj/item/storage/box/beakers/bluespace, /turf/open/floor/plasteel/white/side{ dir = 9 }, @@ -341,7 +528,7 @@ /area/ruin/unpowered/syndicate_lava_base/cargo) "dM" = ( /obj/effect/turf_decal/box/white/corners{ - dir = 1 + dir = 8 }, /obj/structure/closet/crate, /obj/item/storage/box/donkpockets{ @@ -367,6 +554,7 @@ "dR" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/hatch{ + heat_proof = 1; name = "Experimentation Room"; req_access_txt = "150" }, @@ -448,13 +636,16 @@ pixel_x = 24 }, /obj/effect/decal/cleanable/dirt, +/obj/item/screwdriver/nuke{ + pixel_y = 18 + }, /turf/open/floor/plasteel/white/side{ dir = 4 }, /area/ruin/unpowered/syndicate_lava_base/chemistry) "ea" = ( /obj/effect/turf_decal/box/white/corners{ - dir = 8 + dir = 1 }, /obj/structure/closet/crate/secure/weapon{ req_access_txt = "150" @@ -609,71 +800,26 @@ /area/ruin/unpowered/syndicate_lava_base/testlab) "eo" = ( /obj/structure/table/reinforced, -/obj/item/stack/sheet/metal/fifty, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade/adv_release{ - pixel_x = 8 - }, -/obj/item/grenade/chem_grenade/adv_release{ - pixel_x = 8 - }, -/obj/item/grenade/chem_grenade/pyro{ - pixel_x = 4; - pixel_y = 6 - }, -/obj/item/grenade/chem_grenade/pyro{ - pixel_x = 4; - pixel_y = 6 - }, -/obj/item/grenade/chem_grenade/cryo{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/grenade/chem_grenade/cryo{ - pixel_x = -6; - pixel_y = 4 - }, +/obj/item/storage/toolbox/syndicate, /turf/open/floor/plasteel/vault{ dir = 8 }, /area/ruin/unpowered/syndicate_lava_base/testlab) "ep" = ( /obj/structure/table/reinforced, -/obj/item/storage/toolbox/syndicate, -/obj/item/stack/cable_coil/yellow, /obj/effect/decal/cleanable/dirt, +/obj/item/paper_bin, +/obj/item/pen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel/vault{ dir = 8 }, /area/ruin/unpowered/syndicate_lava_base/testlab) "eq" = ( /obj/structure/table/reinforced, -/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/igniter, -/obj/item/assembly/igniter, -/obj/item/assembly/igniter, -/obj/item/assembly/voice, -/obj/item/assembly/voice, -/obj/item/assembly/voice, -/obj/item/assembly/signaler, -/obj/item/assembly/signaler, -/obj/item/assembly/signaler, -/obj/item/screwdriver/nuke, -/obj/effect/decal/cleanable/dirt, +/obj/item/restraints/handcuffs, +/obj/item/taperecorder, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ dir = 8 @@ -722,43 +868,8 @@ /turf/open/floor/plasteel/white/corner, /area/ruin/unpowered/syndicate_lava_base/chemistry) "ew" = ( -/obj/structure/table/glass, -/obj/item/stack/cable_coil/white{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil/white, -/obj/item/assembly/igniter{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/assembly/igniter{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/assembly/igniter{ - 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 - }, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/screwdriver{ - pixel_y = 20 - }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/syndichem, /turf/open/floor/plasteel/white/side{ dir = 6 }, @@ -970,11 +1081,11 @@ /obj/structure/chair{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -983,17 +1094,8 @@ "eQ" = ( /obj/machinery/light/small, /obj/structure/table/reinforced, -/obj/item/restraints/handcuffs, -/obj/item/taperecorder, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/box/monkeycubes{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/storage/box/monkeycubes{ - pixel_x = 4; - pixel_y = 4 - }, +/obj/item/storage/box/monkeycubes, +/obj/item/storage/box/monkeycubes, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -1063,7 +1165,7 @@ /area/ruin/unpowered/syndicate_lava_base/cargo) "eY" = ( /obj/effect/turf_decal/box/white/corners{ - dir = 1 + dir = 8 }, /obj/structure/closet/crate, /obj/item/storage/box/donkpockets{ @@ -1265,9 +1367,9 @@ /turf/open/floor/plasteel/floorgrime, /area/ruin/unpowered/syndicate_lava_base/chemistry) "fq" = ( -/obj/machinery/vending/assist, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/assist, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -1285,16 +1387,18 @@ /area/ruin/unpowered/syndicate_lava_base/cargo) "fs" = ( /obj/effect/turf_decal/box/white/corners{ - dir = 8 + dir = 1 }, /obj/structure/closet/crate, /obj/item/storage/box/stockparts/deluxe, +/obj/item/storage/box/stockparts/deluxe, /obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/glass/fifty, /obj/item/circuitboard/machine/processor, /obj/item/circuitboard/machine/gibber, /obj/item/circuitboard/machine/deep_fryer, /obj/item/circuitboard/machine/cell_charger, +/obj/item/circuitboard/machine/smoke_machine, /turf/open/floor/plasteel/dark, /area/ruin/unpowered/syndicate_lava_base/cargo) "ft" = ( @@ -1562,17 +1666,12 @@ "gj" = ( /turf/closed/wall/mineral/plastitanium/explosive, /area/ruin/unpowered/syndicate_lava_base/virology) -"go" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/medical{ - name = "SyndiMed Plus"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 +"gn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_lava_base/engineering) "gp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -2551,6 +2650,8 @@ /obj/effect/turf_decal/stripes/red/line{ dir = 5 }, +/obj/structure/filingcabinet, +/obj/item/folder/syndicate/mining, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -2692,13 +2793,6 @@ }, /turf/open/floor/circuit/red, /area/ruin/unpowered/syndicate_lava_base/main) -"iL" = ( -/obj/machinery/airalarm/syndicate{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/circuit/red, -/area/ruin/unpowered/syndicate_lava_base/main) "iM" = ( /obj/machinery/light/small{ dir = 4 @@ -3192,7 +3286,8 @@ /area/ruin/unpowered/syndicate_lava_base/engineering) "jK" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on/layer3{ - dir = 8 + dir = 8; + volume_rate = 200 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/syndicate_lava_base/engineering) @@ -3560,6 +3655,9 @@ icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, /turf/open/floor/plating, /area/ruin/unpowered/syndicate_lava_base/engineering) "ky" = ( @@ -3573,6 +3671,9 @@ icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, /turf/open/floor/plating, /area/ruin/unpowered/syndicate_lava_base/engineering) "kz" = ( @@ -3583,9 +3684,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/visible, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible/layer3{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/visible/layer3, /turf/open/floor/plasteel/floorgrime, /area/ruin/unpowered/syndicate_lava_base/engineering) "kA" = ( @@ -3606,6 +3705,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer3{ dir = 9 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/floorgrime, /area/ruin/unpowered/syndicate_lava_base/engineering) "kB" = ( @@ -3754,6 +3854,9 @@ /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ruin/unpowered/syndicate_lava_base/medbay) "kU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 1 + }, /turf/closed/wall/mineral/plastitanium/explosive, /area/ruin/unpowered/syndicate_lava_base/engineering) "kV" = ( @@ -3786,9 +3889,7 @@ /turf/open/floor/plasteel/floorgrime, /area/ruin/unpowered/syndicate_lava_base/engineering) "kY" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/visible{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/visible, /turf/open/floor/plasteel, /area/ruin/unpowered/syndicate_lava_base/engineering) "kZ" = ( @@ -3975,9 +4076,7 @@ /turf/open/floor/plasteel, /area/ruin/unpowered/syndicate_lava_base/engineering) "ls" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/visible, /turf/open/floor/plasteel, /area/ruin/unpowered/syndicate_lava_base/engineering) "lt" = ( @@ -4053,12 +4152,6 @@ }, /turf/open/floor/wood, /area/ruin/unpowered/syndicate_lava_base/bar) -"lD" = ( -/obj/machinery/vending/boozeomat{ - req_access_txt = "0" - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/bar) "lE" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, @@ -4156,6 +4249,7 @@ /turf/open/floor/plasteel, /area/ruin/unpowered/syndicate_lava_base/engineering) "lO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, /turf/open/floor/plasteel/floorgrime, /area/ruin/unpowered/syndicate_lava_base/engineering) "lP" = ( @@ -4360,6 +4454,7 @@ name = "O2 to Incinerator"; target_pressure = 4500 }, +/obj/machinery/atmospherics/pipe/simple/supply/visible, /turf/open/floor/plasteel/floorgrime, /area/ruin/unpowered/syndicate_lava_base/engineering) "mk" = ( @@ -4552,6 +4647,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/clothing/head/welding, /obj/item/weldingtool/largetank, +/obj/machinery/atmospherics/pipe/simple/supply/visible, /turf/open/floor/plasteel/floorgrime, /area/ruin/unpowered/syndicate_lava_base/engineering) "mJ" = ( @@ -4672,19 +4768,13 @@ dir = 1; id = "syndie_lavaland_incineratorturbine" }, -/obj/machinery/button/door{ - id = "syndie_lavaland_turbinevent"; - name = "Turbine Vent Control"; +/obj/machinery/button/door/incinerator_vent_syndicatelava_main{ pixel_x = 6; - pixel_y = -24; - req_access_txt = "150" + pixel_y = -24 }, -/obj/machinery/button/door{ - id = "syndie_lavaland_auxincineratorvent"; - name = "Auxiliary Vent Control"; +/obj/machinery/button/door/incinerator_vent_syndicatelava_aux{ pixel_x = -6; - pixel_y = -24; - req_access_txt = "150" + pixel_y = -24 }, /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, @@ -4700,17 +4790,11 @@ /area/ruin/unpowered/syndicate_lava_base/engineering) "ne" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/doorButtons/airlock_controller{ - idExterior = "syndie_lavaland_incinerator_exterior"; - idInterior = "syndie_lavaland_incinerator_interior"; - idSelf = "syndie_lavaland_incinerator_access"; - name = "Incinerator Access Console"; +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_syndicatelava{ pixel_x = -8; - pixel_y = -26; - req_access_txt = "150" + pixel_y = -26 }, -/obj/machinery/button/ignition{ - id = "syndie_lavaland_Incinerator"; +/obj/machinery/button/ignition/incinerator/syndicatelava{ pixel_x = 6; pixel_y = -24 }, @@ -4971,14 +5055,7 @@ icon_state = "1-2" }, /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "syndie_lavaland_incinerator_interior"; - name = "Turbine Interior Airlock"; - req_access_txt = "150" - }, +/obj/machinery/door/airlock/glass/incinerator/syndicatelava_interior, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/engine, /area/ruin/unpowered/syndicate_lava_base/engineering) @@ -5259,13 +5336,8 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/machinery/doorButtons/access_button{ - idDoor = "syndie_lavaland_incinerator_exterior"; - idSelf = "syndie_lavaland_incinerator_access"; - layer = 3.1; - name = "Incinerator airlock control"; - pixel_x = 8; - pixel_y = -24 +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 4 }, /turf/open/floor/engine, /area/ruin/unpowered/syndicate_lava_base/engineering) @@ -5273,22 +5345,24 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_syndicatelava{ + dir = 8 + }, /turf/open/floor/engine, /area/ruin/unpowered/syndicate_lava_base/engineering) "of" = ( /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/doorButtons/access_button{ - idDoor = "syndie_lavaland_incinerator_interior"; - idSelf = "syndie_lavaland_incinerator_access"; - name = "Incinerator airlock control"; - pixel_x = -8; - pixel_y = 24 - }, /obj/machinery/atmospherics/components/binary/pump/on{ target_pressure = 4500 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 8 + }, +/obj/machinery/airlock_sensor/incinerator_syndicatelava{ + pixel_x = 22 + }, /turf/open/floor/engine, /area/ruin/unpowered/syndicate_lava_base/engineering) "og" = ( @@ -5394,28 +5468,12 @@ /obj/item/clothing/neck/stethoscope, /turf/open/floor/plasteel/white, /area/ruin/unpowered/syndicate_lava_base/medbay) -"os" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/medical{ - name = "SyndiMed Plus"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/medbay) "ot" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "syndie_lavaland_incinerator_exterior"; - name = "Turbine Exterior Airlock"; - req_access_txt = "150" - }, +/obj/machinery/door/airlock/glass/incinerator/syndicatelava_exterior, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, @@ -5444,20 +5502,14 @@ /turf/open/floor/plating, /area/ruin/unpowered/syndicate_lava_base/arrivals) "oz" = ( -/turf/open/floor/engine{ - initial_gas_mix = "o2=14;n2=23;TEMP=300" - }, +/turf/open/floor/engine/vacuum, /area/ruin/unpowered/syndicate_lava_base/engineering) "oA" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/igniter{ - id = "syndie_lavaland_Incinerator" - }, -/turf/open/floor/engine{ - initial_gas_mix = "o2=14;n2=23;TEMP=300" - }, +/obj/machinery/igniter/incinerator_syndicatelava, +/turf/open/floor/engine/vacuum, /area/ruin/unpowered/syndicate_lava_base/engineering) "oB" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ @@ -5467,18 +5519,11 @@ /obj/structure/sign/warning/vacuum/external{ pixel_y = -32 }, -/turf/open/floor/engine{ - initial_gas_mix = "o2=14;n2=23;TEMP=300" - }, +/turf/open/floor/engine/vacuum, /area/ruin/unpowered/syndicate_lava_base/engineering) "oC" = ( -/obj/machinery/door/poddoor{ - id = "syndie_lavaland_auxincineratorvent"; - name = "Auxiliary Incinerator Vent" - }, -/turf/open/floor/engine{ - initial_gas_mix = "o2=14;n2=23;TEMP=300" - }, +/obj/machinery/door/poddoor/incinerator_syndicatelava_aux, +/turf/open/floor/engine/vacuum, /area/ruin/unpowered/syndicate_lava_base/engineering) "oD" = ( /obj/structure/sign/warning/xeno_mining{ @@ -5500,9 +5545,7 @@ dir = 1; luminosity = 2 }, -/turf/open/floor/engine{ - initial_gas_mix = "o2=14;n2=23;TEMP=300" - }, +/turf/open/floor/engine/vacuum, /area/ruin/unpowered/syndicate_lava_base/engineering) "oF" = ( /obj/structure/sign/warning/securearea, @@ -5514,18 +5557,11 @@ dir = 2; luminosity = 2 }, -/turf/open/floor/engine{ - initial_gas_mix = "o2=14;n2=23;TEMP=300" - }, +/turf/open/floor/engine/vacuum, /area/ruin/unpowered/syndicate_lava_base/engineering) "oH" = ( -/obj/machinery/door/poddoor{ - id = "syndie_lavaland_turbinevent"; - name = "Turbine Vent" - }, -/turf/open/floor/engine{ - initial_gas_mix = "o2=14;n2=23;TEMP=300" - }, +/obj/machinery/door/poddoor/incinerator_syndicatelava_main, +/turf/open/floor/engine/vacuum, /area/ruin/unpowered/syndicate_lava_base/engineering) "oI" = ( /obj/structure/sign/warning/vacuum{ @@ -5540,50 +5576,51 @@ /obj/structure/sign/departments/chemistry, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ruin/unpowered/syndicate_lava_base/testlab) -"pn" = ( +"tW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_lava_base/engineering) +"uB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 }, -/turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/circuits) -"sJ" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_lava_base/engineering) +"vu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/engine, +/area/ruin/unpowered/syndicate_lava_base/testlab) +"BF" = ( /obj/structure/grille, /obj/structure/window/plastitanium, /obj/machinery/door/firedoor, -/obj/machinery/door/poddoor{ - id = "lavalandsyndi_circuits" +/obj/machinery/door/poddoor/preopen{ + id = "lavalandsyndi"; + name = "Syndicate Research Experimentation Shutters" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/circuits) -"tZ" = ( -/obj/structure/chair/office/light{ - dir = 8 +/area/ruin/unpowered/syndicate_lava_base/testlab) +"Cg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, -/turf/open/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/circuits) -"yC" = ( -/obj/structure/table/reinforced, -/obj/item/integrated_circuit_printer/upgraded, -/obj/machinery/light/small{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/turf/open/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/circuits) -"Al" = ( +/turf/open/floor/engine, +/area/ruin/unpowered/syndicate_lava_base/testlab) +"CG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 + dir = 10 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 + dir = 10 }, -/turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/turf/open/floor/engine, +/area/ruin/unpowered/syndicate_lava_base/testlab) "EZ" = ( /obj/machinery/door/airlock/external{ req_access_txt = "150" @@ -5592,37 +5629,41 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/ruin/unpowered/syndicate_lava_base/arrivals) -"FK" = ( -/obj/structure/table/reinforced, -/obj/item/stack/sheet/metal/fifty, -/turf/open/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/circuits) -"Gj" = ( -/obj/structure/cable/yellow{ - icon_state = "0-8" +"IJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 1 }, -/obj/machinery/power/apc/syndicate{ - dir = 1; - name = "Circuit Lab APC"; - pixel_y = 24 +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_lava_base/engineering) +"Lg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/bin, -/turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/turf/open/floor/engine, +/area/ruin/unpowered/syndicate_lava_base/testlab) +"LQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/engine, +/area/ruin/unpowered/syndicate_lava_base/testlab) "MP" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ruin/unpowered/syndicate_lava_base/circuits) -"Oa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/circuits) "Pa" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ruin/unpowered/syndicate_lava_base/circuits) +"RE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_lava_base/engineering) +"RV" = ( +/obj/structure/sign/warning/fire, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_lava_base/engineering) "St" = ( /obj/structure/fans/tiny, /obj/machinery/door/airlock/external{ @@ -5633,71 +5674,24 @@ }, /turf/open/floor/plating, /area/ruin/unpowered/syndicate_lava_base/arrivals) -"UP" = ( -/obj/structure/table/reinforced, -/obj/machinery/airalarm/syndicate{ - dir = 8; - pixel_x = 24 - }, -/obj/item/stock_parts/cell/high/plus{ - pixel_x = 7; - pixel_y = -5 - }, -/obj/item/stock_parts/cell/high/plus{ - pixel_x = -8; - pixel_y = -3 - }, -/obj/item/multitool{ - pixel_x = -1; - pixel_y = -13 - }, -/turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/circuits) -"Wg" = ( -/obj/structure/table/reinforced, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -26 - }, -/obj/item/stock_parts/cell/high/plus{ - pixel_x = -5; - pixel_y = 9 - }, -/obj/item/stock_parts/cell/high/plus{ - pixel_x = -8; - pixel_y = -3 - }, -/obj/item/multitool, -/turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/circuits) -"Yr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 +"Tp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/circuits) -"Yu" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/obj/machinery/button/door{ - id = "lavalandsyndi_circuits"; - name = "Circuitry Blast Door Control"; - pixel_y = 26; - req_access_txt = "150" +/turf/open/floor/engine, +/area/ruin/unpowered/syndicate_lava_base/testlab) +"TC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/circuits) -"ZW" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin, -/obj/item/pen, -/obj/item/integrated_electronics/analyzer{ - pixel_x = -12; - pixel_y = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/turf/open/floor/engine, +/area/ruin/unpowered/syndicate_lava_base/testlab) (1,1,1) = {" aa @@ -5709,6 +5703,7 @@ aa aa aa aa +aa ab ab ab @@ -5739,6 +5734,8 @@ ab ab ab ab +ab +ab aa aa aa @@ -5754,6 +5751,9 @@ aa aa aa aa +aa +ab +ab ab ab ab @@ -5798,6 +5798,7 @@ aa aa aa aa +aa ab aa ab @@ -5838,11 +5839,14 @@ ab ab ab ab +ab +ab aa "} (4,1,1) = {" aa aa +aa ab ab ab @@ -5884,11 +5888,14 @@ ab ab ab ab +ab +ab aa aa "} (5,1,1) = {" aa +aa ab ab ab @@ -5932,12 +5939,15 @@ ab ab ab ab +ab +ab aa "} (6,1,1) = {" aa aa aa +aa ab ab ab @@ -5978,11 +5988,14 @@ ab ab ab ab +ab +ab aa aa "} (7,1,1) = {" aa +aa ab ab ab @@ -6026,10 +6039,13 @@ ab ab ab ab +ab +ab aa "} (8,1,1) = {" aa +aa ab ab ab @@ -6044,7 +6060,7 @@ eh eG ff eI -go +aj eh eh eh @@ -6073,11 +6089,14 @@ ab ab ab ab +ab +ab aa "} (9,1,1) = {" aa aa +aa ab ab ab @@ -6121,8 +6140,11 @@ ab ab ab ab +ab +ab "} (10,1,1) = {" +aa ab ab ab @@ -6168,9 +6190,12 @@ ab ab ab ab +ab +ab "} (11,1,1) = {" aa +aa ab ab ab @@ -6215,8 +6240,11 @@ ab ab ab ab +ab +ab "} (12,1,1) = {" +aa ab ab ab @@ -6262,8 +6290,11 @@ ab ab ab ab +ab +ab "} (13,1,1) = {" +aa ab ab ab @@ -6309,8 +6340,11 @@ ab ab ab ab +ab +ab "} (14,1,1) = {" +aa ab ab ab @@ -6356,6 +6390,8 @@ ab ab ab ab +ab +ab "} (15,1,1) = {" ab @@ -6369,6 +6405,7 @@ ab ab ab ab +ab ei eJ fj @@ -6403,8 +6440,11 @@ ab ab ab ab +ab +ab "} (16,1,1) = {" +aa ab ab ab @@ -6450,12 +6490,15 @@ ab ab ab ab +ab +ab "} (17,1,1) = {" ab ab ab ab +ab ae ae ae @@ -6497,11 +6540,14 @@ ab ab ab ab +ab +aa "} (18,1,1) = {" ab ab ab +ab ae ae aq @@ -6544,17 +6590,20 @@ ab ab ab ab +ab +aa "} (19,1,1) = {" ab ab ab +ab ae ap aq +Lg aq -aq -aq +Lg aq dR el @@ -6591,17 +6640,20 @@ ab ab ab ab +aa +aa "} (20,1,1) = {" +aa ab ab ab ae aq aq +aF aq -aq -aq +aF aq ae em @@ -6638,17 +6690,20 @@ ab ab ab ab +ab +aa "} (21,1,1) = {" +aa ab ab ab ae aq aq +Tp aq -aq -aq +Cg aq dS eo @@ -6685,19 +6740,22 @@ ab ab ab ab +ab +ab "} (22,1,1) = {" +aa ab ab ab ae ap aq -aq -aq -aq -aq -dS +CG +vu +TC +LQ +BF ep eP fl @@ -6732,8 +6790,11 @@ ab ab ab ab +ab +ab "} (23,1,1) = {" +aa ab ab ab @@ -6779,8 +6840,11 @@ ab ab ab ab +ab +ab "} (24,1,1) = {" +aa ab ab ab @@ -6812,7 +6876,7 @@ jy jy jy jy -lD +ak ma jy jy @@ -6826,8 +6890,11 @@ Pa ab ab ab +ab +ab "} (25,1,1) = {" +aa ab ab ab @@ -6867,9 +6934,11 @@ nt nW oq Pa -Wg -bh -sJ +am +ao +Pa +Pa +ab ab ab ab @@ -6881,6 +6950,7 @@ ab ab ab ab +ab as as du @@ -6914,9 +6984,11 @@ nu nX MP Pa -Yu -tZ -sJ +aT +ba +bd +au +ab ab ab ab @@ -6928,6 +7000,7 @@ ab ab ab ab +ab at aM dv @@ -6960,15 +7033,18 @@ mX nv nY aW -pn -Al -FK -sJ +aO +aU +aS +be +au ab ab ab +aa "} (28,1,1) = {" +aa ab ab ab @@ -7007,15 +7083,18 @@ mY nw nZ Pa -Gj -Oa -ZW -sJ +aP +aV +aR +bf +au ab ab ab +aa "} (29,1,1) = {" +aa ab ab ab @@ -7055,14 +7134,17 @@ nx kR Pa Pa -Yr +aX bb -sJ +bg +au +ab ab ab ab "} (30,1,1) = {" +aa ab ab ab @@ -7102,14 +7184,17 @@ ny oa or Pa -UP -yC -sJ +an +ar +Pa +Pa +ab ab ab ab "} (31,1,1) = {" +aa ab ab ab @@ -7147,7 +7232,7 @@ mB na nz ob -os +al Pa Pa Pa @@ -7155,9 +7240,12 @@ Pa ab ab ab +ab +ab "} (32,1,1) = {" aa +aa ab ab ab @@ -7202,9 +7290,12 @@ ab ab ab ab +ab +ab "} (33,1,1) = {" aa +aa ab ab ab @@ -7249,10 +7340,13 @@ ab ab ab ab +ab +ab "} (34,1,1) = {" aa aa +aa ab ab ab @@ -7296,9 +7390,12 @@ ab ab ab ab +ab +aa "} (35,1,1) = {" aa +aa ab ab ab @@ -7326,18 +7423,20 @@ jt jF jT ju -ju -ju -ju -ju +gn +IJ +IJ +IJ kU +IJ +IJ +IJ +uB ju ju ju -ju -ju -ju -ju +ab +ab ab ab ab @@ -7346,6 +7445,7 @@ ab "} (36,1,1) = {" aa +aa ab ab ab @@ -7390,8 +7490,11 @@ nf ab ab ab +ab +aa "} (37,1,1) = {" +aa ab ab ab @@ -7437,6 +7540,8 @@ oH ab ab ab +ab +ab "} (38,1,1) = {" ab @@ -7448,6 +7553,7 @@ ab ab ab ab +ab dy ef eC @@ -7460,7 +7566,7 @@ hl hU ha it -iL +iJ jd ha jw @@ -7484,8 +7590,11 @@ nf ab ab ab +ab +ab "} (39,1,1) = {" +aa ab ab ab @@ -7520,9 +7629,9 @@ ls lO mj mI -nf -ju -ju +RV +tW +RE ju oC nf @@ -7531,8 +7640,11 @@ ab ab ab ab +ab +ab "} (40,1,1) = {" +aa ab ab ab @@ -7578,8 +7690,11 @@ ab ab ab ab +ab +ab "} (41,1,1) = {" +aa ab ab ab @@ -7625,9 +7740,12 @@ ab ab ab ab +ab +ab "} (42,1,1) = {" aa +aa ab ab ab @@ -7671,10 +7789,13 @@ ab ab ab ab +ab +ab aa "} (43,1,1) = {" aa +aa ab ab ab @@ -7718,10 +7839,13 @@ ab ab ab ab +ab +ab aa "} (44,1,1) = {" aa +aa ab ab ab @@ -7764,12 +7888,15 @@ ab ab ab ab +ab +ab aa aa "} (45,1,1) = {" aa aa +aa ab aa ab @@ -7812,6 +7939,8 @@ ab ab ab ab +ab +ab aa "} (46,1,1) = {" @@ -7819,6 +7948,7 @@ aa aa aa aa +aa ab ab aa @@ -7858,6 +7988,8 @@ ab ab ab ab +ab +ab aa aa "} @@ -7871,6 +8003,9 @@ aa aa aa aa +aa +ab +ab ab ab ab @@ -7921,6 +8056,9 @@ aa aa aa aa +aa +ab +ab ab ab ab diff --git a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm index e2a14dbc82..2a25b85b87 100644 --- a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm +++ b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm @@ -33,7 +33,7 @@ /area/template_noop) "ah" = ( /obj/structure/lattice/catwalk, -/mob/living/simple_animal/hostile/pirate/space/ranged{ +/mob/living/simple_animal/hostile/pirate/ranged/space{ environment_smash = 0 }, /turf/template_noop, @@ -176,7 +176,7 @@ /area/shuttle/caravan/freighter3) "aP" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, -/mob/living/simple_animal/hostile/pirate/space/ranged{ +/mob/living/simple_animal/hostile/pirate/ranged/space{ environment_smash = 0 }, /turf/open/floor/plasteel/airless/floorgrime, @@ -473,10 +473,7 @@ /turf/open/floor/plating/airless, /area/shuttle/caravan/freighter3) "gT" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/space{ - environment_smash = 0; - name = "Syndicate Salvage Worker" - }, +/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, /turf/open/floor/plasteel/airless/floorgrime, /area/shuttle/caravan/freighter3) "gU" = ( @@ -612,12 +609,9 @@ /area/shuttle/caravan/freighter3) "hy" = ( /obj/effect/turf_decal/box/white/corners{ - dir = 1 - }, -/mob/living/simple_animal/hostile/syndicate/ranged/space/stormtrooper{ - environment_smash = 0; - name = "Syndicate Salvage Leader" + dir = 8 }, +/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space/stormtrooper, /turf/open/floor/plasteel/airless/dark, /area/shuttle/caravan/freighter3) "hz" = ( @@ -732,7 +726,7 @@ /area/shuttle/caravan/freighter3) "ib" = ( /obj/effect/turf_decal/box/white/corners{ - dir = 8 + dir = 1 }, /obj/structure/closet/crate/secure/plasma, /obj/item/tank/internals/plasma/full, @@ -892,10 +886,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/mob/living/simple_animal/hostile/syndicate/ranged/space{ - environment_smash = 0; - name = "Syndicate Salvage Worker" - }, +/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, /turf/open/floor/plasteel/airless/floorgrime, /area/shuttle/caravan/freighter3) "iF" = ( @@ -938,7 +929,7 @@ /area/shuttle/caravan/freighter2) "iX" = ( /obj/effect/turf_decal/box/white/corners{ - dir = 1 + dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/airless/dark, @@ -1014,7 +1005,7 @@ /area/shuttle/caravan/freighter2) "jr" = ( /obj/effect/turf_decal/box/white/corners{ - dir = 8 + dir = 1 }, /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate/secure/weapon, @@ -1096,7 +1087,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/mob/living/simple_animal/hostile/pirate/space/ranged{ +/mob/living/simple_animal/hostile/pirate/ranged/space{ environment_smash = 0 }, /turf/open/floor/plasteel/airless/floorgrime, @@ -1108,7 +1099,7 @@ /area/shuttle/caravan/freighter2) "jO" = ( /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/pirate/space/ranged{ +/mob/living/simple_animal/hostile/pirate/ranged/space{ environment_smash = 0 }, /turf/open/floor/plating/airless, diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index e3317ad64e..fd7d3a40cf 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -346,13 +346,16 @@ /area/ruin/space/has_grav/deepstorage/storage) "aW" = ( /obj/structure/closet/cardboard, -/obj/item/ammo_box/c9mm, -/obj/item/ammo_box/c9mm, -/obj/item/ammo_box/c9mm, -/obj/item/ammo_box/c9mm, -/obj/item/ammo_box/c9mm, -/obj/item/ammo_box/c9mm, /obj/effect/turf_decal/delivery, +/obj/item/ammo_box/magazine/pistolm9mm{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/ammo_box/magazine/pistolm9mm, +/obj/item/ammo_box/magazine/pistolm9mm{ + pixel_x = 3; + pixel_y = -3 + }, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/deepstorage/storage) "aX" = ( @@ -701,15 +704,31 @@ /area/ruin/space/has_grav/deepstorage/hydroponics) "bT" = ( /obj/effect/turf_decal/delivery, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = -2 + }, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = 5 + }, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = 1; + pixel_y = -3 + }, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = 8; + pixel_y = -3 + }, /obj/structure/closet/crate{ name = "food crate" }, -/obj/item/reagent_containers/food/snacks/beans, -/obj/item/reagent_containers/food/snacks/beans, -/obj/item/reagent_containers/food/snacks/beans, -/obj/item/reagent_containers/food/snacks/beans, -/obj/item/reagent_containers/food/snacks/beans, -/obj/item/reagent_containers/food/snacks/beans, /obj/machinery/light{ dir = 8 }, @@ -717,15 +736,31 @@ /area/ruin/space/has_grav/deepstorage/storage) "bU" = ( /obj/effect/turf_decal/delivery, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = -2 + }, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = 5 + }, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = 1; + pixel_y = -3 + }, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = 8; + pixel_y = -3 + }, /obj/structure/closet/crate{ name = "food crate" }, -/obj/item/reagent_containers/food/snacks/beans, -/obj/item/reagent_containers/food/snacks/beans, -/obj/item/reagent_containers/food/snacks/beans, -/obj/item/reagent_containers/food/snacks/beans, -/obj/item/reagent_containers/food/snacks/beans, -/obj/item/reagent_containers/food/snacks/beans, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/deepstorage/storage) "bV" = ( @@ -981,12 +1016,28 @@ /obj/structure/closet/crate{ name = "food crate" }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large, -/obj/item/reagent_containers/glass/beaker/waterbottle/large, -/obj/item/reagent_containers/glass/beaker/waterbottle/large, -/obj/item/reagent_containers/glass/beaker/waterbottle/large, -/obj/item/reagent_containers/glass/beaker/waterbottle/large, -/obj/item/reagent_containers/glass/beaker/waterbottle/large, +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = -2 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = 5 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = 1; + pixel_y = -3 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = 8; + pixel_y = -3 + }, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/deepstorage/storage) "cC" = ( @@ -1328,18 +1379,40 @@ /obj/structure/closet/crate{ name = "food crate" }, -/obj/item/storage/box/donkpockets, -/obj/item/storage/box/donkpockets, -/obj/item/storage/box/donkpockets, -/obj/item/storage/box/donkpockets, -/obj/item/storage/box/donkpockets, -/obj/item/storage/box/donkpockets, +/obj/item/storage/box/donkpockets{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = -2 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 5 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 1; + pixel_y = -3 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 8; + pixel_y = -3 + }, /obj/machinery/light{ dir = 8 }, -/obj/item/vending_refill/coffee, -/obj/item/vending_refill/cigarette, +/obj/item/vending_refill/cigarette{ + pixel_x = -3; + pixel_y = 3 + }, /obj/item/vending_refill/cigarette, +/obj/item/vending_refill/coffee{ + pixel_x = 3; + pixel_y = -3 + }, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/deepstorage/storage) "dx" = ( @@ -1347,15 +1420,37 @@ /obj/structure/closet/crate{ name = "food crate" }, -/obj/item/storage/box/donkpockets, -/obj/item/storage/box/donkpockets, -/obj/item/storage/box/donkpockets, -/obj/item/storage/box/donkpockets, -/obj/item/storage/box/donkpockets, -/obj/item/storage/box/donkpockets, -/obj/item/vending_refill/coffee, -/obj/item/vending_refill/cigarette, +/obj/item/storage/box/donkpockets{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = -2 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 5 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 1; + pixel_y = -3 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 8; + pixel_y = -3 + }, +/obj/item/vending_refill/cigarette{ + pixel_x = -3; + pixel_y = 3 + }, /obj/item/vending_refill/cigarette, +/obj/item/vending_refill/coffee{ + pixel_x = 3; + pixel_y = -3 + }, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/deepstorage/storage) "dy" = ( @@ -1773,16 +1868,13 @@ /area/ruin/space/has_grav/deepstorage/armory) "ex" = ( /obj/structure/table, -/obj/item/gun/ballistic/automatic/wt550{ - pixel_x = -3; - pixel_y = 6 - }, -/obj/item/gun/ballistic/automatic/wt550{ - pixel_x = 2 - }, /obj/structure/reagent_dispensers/peppertank{ pixel_x = 32 }, +/obj/item/gun/ballistic/automatic/wt550, +/obj/item/ammo_box/magazine/wt550m9{ + pixel_y = 12 + }, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/deepstorage/armory) "ey" = ( @@ -2165,7 +2257,7 @@ /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/deepstorage/power) "fo" = ( -/obj/machinery/suit_storage_unit/syndicate, +/obj/machinery/suit_storage_unit/standard_unit, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/deepstorage/power) "fp" = ( diff --git a/_maps/RandomRuins/SpaceRuins/miracle.dmm b/_maps/RandomRuins/SpaceRuins/miracle.dmm index 031cc37ff2..ba22f46236 100644 --- a/_maps/RandomRuins/SpaceRuins/miracle.dmm +++ b/_maps/RandomRuins/SpaceRuins/miracle.dmm @@ -1,8 +1,6 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/obj/item/storage/backpack/satchel/flat/secret{ - reward_all_of_these = list(/obj/item/gun/energy/pulse/prize) - }, +/obj/item/storage/backpack/satchel/flat/secret/miracle_ruin, /turf/open/floor/fakespace{ initial_gas_mix = "TEMP=2.7" }, diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index 612d6d8f14..79611ff7d7 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -14,11 +14,16 @@ /area/ruin/space/has_grav/ancientstation/hivebot) "ae" = ( /obj/structure/closet/crate, -/obj/item/stack/sheet/plasteel/twenty, /obj/item/stack/sheet/glass/fifty{ pixel_x = 3; pixel_y = 3 }, +/obj/item/stack/sheet/plasteel{ + amount = 30 + }, +/obj/item/stack/sheet/mineral/titanium{ + amount = 30 + }, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/ancientstation/hivebot) "af" = ( @@ -38,10 +43,10 @@ "aj" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/mineral/silver{ - amount = 15 + amount = 25 }, /obj/item/stack/sheet/mineral/gold{ - amount = 15 + amount = 25 }, /obj/item/stack/ore/bluespace_crystal, /obj/item/stack/ore/bluespace_crystal, @@ -251,11 +256,11 @@ /area/ruin/space/has_grav/ancientstation/comm) "aS" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, /obj/item/solar_assembly, /obj/item/solar_assembly, /obj/item/solar_assembly, /obj/item/solar_assembly, +/obj/structure/closet/crate/engineering/electrical, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation) "aT" = ( @@ -326,9 +331,7 @@ /area/ruin/space/has_grav/ancientstation/comm) "bc" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/item/storage/backpack/old, -/turf/open/floor/plating, +/turf/closed/wall/rust, /area/ruin/space/has_grav/ancientstation) "bd" = ( /obj/structure/transit_tube{ @@ -353,11 +356,11 @@ /area/ruin/unpowered) "bi" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, /obj/item/electronics/airlock, /obj/item/electronics/airlock, /obj/item/electronics/apc, /obj/item/electronics/apc, +/obj/structure/closet/crate/engineering/electrical, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation) "bj" = ( @@ -365,6 +368,10 @@ /obj/structure/chair{ dir = 1 }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, /turf/open/floor/plasteel/blue/side{ dir = 10 }, @@ -406,10 +413,10 @@ "bp" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/mineral/plasma{ - amount = 15 + amount = 25 }, /obj/item/stack/sheet/mineral/uranium{ - amount = 10 + amount = 25 }, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/ancientstation/hivebot) @@ -521,11 +528,11 @@ /area/ruin/space/has_grav/ancientstation) "bM" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, /obj/item/solar_assembly, /obj/item/solar_assembly, /obj/item/solar_assembly, /obj/item/solar_assembly, +/obj/structure/closet/crate/engineering/electrical, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation) "bN" = ( @@ -632,12 +639,12 @@ /area/ruin/space/has_grav/ancientstation/betanorth) "cf" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/transit_tube/station/reverse/flipped{ - dir = 1 - }, /obj/structure/transit_tube_pod{ dir = 4 }, +/obj/structure/transit_tube/station/reverse{ + dir = 1 + }, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation/betanorth) "cg" = ( @@ -856,13 +863,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"cJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/deltacorridor) "cK" = ( /obj/effect/spawner/structure/window/hollow/reinforced/end{ dir = 4 @@ -1074,6 +1074,10 @@ /obj/machinery/light/small{ dir = 8 }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, /turf/open/floor/plasteel/green/side{ dir = 9 }, @@ -1095,6 +1099,7 @@ tank_volume = 1000 }, /obj/item/reagent_containers/glass/bucket, +/obj/item/reagent_containers/glass/bucket, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation/hydroponics) "dr" = ( @@ -1162,6 +1167,7 @@ name = "Research and Development" }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation/rnd) "dA" = ( @@ -1169,6 +1175,7 @@ /obj/machinery/door/airlock/research{ name = "Research and Development" }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation/rnd) "dB" = ( @@ -1205,12 +1212,12 @@ /area/template_noop) "dK" = ( /obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "2-4" }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, /turf/template_noop, /area/template_noop) "dL" = ( @@ -1336,7 +1343,9 @@ "ec" = ( /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/hostile/hivebot/strong, -/turf/open/floor/plasteel/white/corner, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 9 + }, /area/ruin/space/has_grav/ancientstation/rnd) "ed" = ( /obj/effect/decal/cleanable/dirt, @@ -1364,7 +1373,7 @@ /area/ruin/space/has_grav/ancientstation/betanorth) "ei" = ( /obj/structure/lattice/catwalk, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "1-2" }, /turf/template_noop, @@ -1422,6 +1431,7 @@ }, /obj/item/cultivator, /obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/item/shovel/spade, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation/hydroponics) "eq" = ( @@ -1542,7 +1552,7 @@ /turf/open/floor/plating/airless, /area/template_noop) "eJ" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "0-8" }, /turf/open/floor/plating/airless, @@ -1693,10 +1703,10 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ icon_state = "0-2" }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/engi) "fe" = ( @@ -1776,6 +1786,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation) +"fo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 5 + }, +/area/ruin/space/has_grav/ancientstation/rnd) "fp" = ( /obj/structure/sign/poster/official/here_for_your_safety, /turf/closed/wall/rust, @@ -1888,6 +1904,7 @@ /obj/machinery/door/poddoor{ id = "ancient" }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation/powered) "fH" = ( @@ -1987,8 +2004,9 @@ /obj/machinery/light{ dir = 8 }, -/turf/open/floor/plasteel/white/corner{ - dir = 4 +/turf/open/floor/plasteel/whitepurple/side{ + icon_state = "whitepurple"; + dir = 10 }, /area/ruin/space/has_grav/ancientstation/rnd) "fU" = ( @@ -2008,8 +2026,8 @@ /obj/machinery/light{ dir = 4 }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 +/turf/open/floor/plasteel/whitepurple/side{ + dir = 6 }, /area/ruin/space/has_grav/ancientstation/rnd) "fX" = ( @@ -2054,53 +2072,40 @@ /area/template_noop) "gc" = ( /obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-4" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "2-4" }, /turf/template_noop, /area/template_noop) "gd" = ( /obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, /turf/template_noop, /area/template_noop) "ge" = ( /obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/template_noop, -/area/template_noop) -"gf" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "1-4" }, /turf/template_noop, /area/template_noop) @@ -2110,53 +2115,50 @@ req_access_txt = "200" }, /obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/engi) "gh" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/engi) "gi" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "2-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/engi) "gj" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ icon_state = "2-8" }, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "1-8" }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/engi) "gk" = ( @@ -2167,9 +2169,6 @@ icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation/engi) "gl" = ( @@ -2177,9 +2176,6 @@ /obj/item/stack/cable_coil{ amount = 2 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/engi) "gm" = ( @@ -2576,7 +2572,7 @@ /area/ruin/space/has_grav/ancientstation/engi) "gW" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "1-2" }, /turf/open/floor/plasteel/floorgrime, @@ -2667,7 +2663,7 @@ /area/ruin/space/has_grav/ancientstation/engi) "hl" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "1-2" }, /turf/open/floor/plasteel/yellow/corner{ @@ -2679,8 +2675,8 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/cable, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/engi) "hn" = ( @@ -2778,6 +2774,10 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, /turf/open/floor/plasteel/red/side{ dir = 4 }, @@ -2806,10 +2806,10 @@ /area/ruin/space/has_grav/ancientstation/rnd) "hF" = ( /obj/structure/table, -/obj/item/reagent_containers/glass/beaker/large/aluminium{ +/obj/item/reagent_containers/glass/bottle/aluminium{ pixel_x = 6 }, -/obj/item/reagent_containers/glass/beaker/large/bromine{ +/obj/item/reagent_containers/glass/bottle/bromine{ pixel_x = -6 }, /obj/effect/decal/cleanable/dirt, @@ -2819,10 +2819,10 @@ /area/ruin/space/has_grav/ancientstation/rnd) "hG" = ( /obj/structure/table, -/obj/item/reagent_containers/glass/beaker/large/carbon{ +/obj/item/reagent_containers/glass/bottle/carbon{ pixel_x = 6 }, -/obj/item/reagent_containers/glass/beaker/large/chlorine{ +/obj/item/reagent_containers/glass/bottle/chlorine{ pixel_x = -6 }, /obj/effect/decal/cleanable/dirt, @@ -2832,10 +2832,10 @@ /area/ruin/space/has_grav/ancientstation/rnd) "hH" = ( /obj/structure/table, -/obj/item/reagent_containers/glass/beaker/large/copper{ +/obj/item/reagent_containers/glass/bottle/copper{ pixel_x = 6 }, -/obj/item/reagent_containers/glass/beaker/large/ethanol{ +/obj/item/reagent_containers/glass/bottle/ethanol{ pixel_x = -6 }, /obj/effect/decal/cleanable/dirt, @@ -2868,28 +2868,32 @@ /turf/open/floor/plating/airless, /area/ruin/space/has_grav/ancientstation/betanorth) "hM" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "0-4" }, /turf/open/floor/plating/airless, /area/template_noop) "hN" = ( /obj/structure/lattice/catwalk, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "1-8" }, /turf/template_noop, /area/template_noop) "hO" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/light/small{ brightness = 3; dir = 8 }, /obj/effect/decal/cleanable/oil, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, /turf/open/floor/plasteel/yellow/side{ dir = 8 }, @@ -2973,13 +2977,13 @@ /area/ruin/space/has_grav/ancientstation/rnd) "hZ" = ( /obj/structure/table, -/obj/item/reagent_containers/glass/beaker/large/fluorine{ +/obj/item/reagent_containers/glass/bottle/fluorine{ pixel_x = 6 }, -/obj/item/reagent_containers/glass/beaker/large/hydrogen{ +/obj/item/reagent_containers/glass/bottle/hydrogen{ pixel_x = -6 }, -/obj/item/reagent_containers/glass/beaker/large/water{ +/obj/item/reagent_containers/glass/bottle/water{ pixel_y = 8 }, /obj/effect/decal/cleanable/dirt, @@ -2989,7 +2993,7 @@ /area/ruin/space/has_grav/ancientstation/rnd) "ib" = ( /obj/structure/lattice/catwalk, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "1-4" }, /turf/template_noop, @@ -3000,7 +3004,7 @@ name = "Station Solar Control Computer" }, /obj/item/paper/guides/jobs/engi/solars, -/obj/structure/cable, +/obj/structure/cable/yellow, /turf/open/floor/plasteel/yellow/side{ dir = 10 }, @@ -3105,9 +3109,7 @@ /area/ruin/space/has_grav/ancientstation/rnd) "ir" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /turf/open/floor/plasteel/orange/side{ dir = 4 }, @@ -3118,22 +3120,26 @@ req_access_txt = "200" }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation/rnd) "it" = ( /obj/structure/table, -/obj/item/reagent_containers/glass/beaker/large/mercury{ +/obj/item/reagent_containers/glass/bottle/mercury{ pixel_x = 6; pixel_y = 8 }, -/obj/item/reagent_containers/glass/beaker/large/nitrogen{ +/obj/item/reagent_containers/glass/bottle/nitrogen{ pixel_x = -6; pixel_y = 8 }, -/obj/item/reagent_containers/glass/beaker/large/oxygen{ +/obj/item/reagent_containers/glass/bottle/oxygen{ pixel_x = 6 }, -/obj/item/reagent_containers/glass/beaker/large/phosphorus{ +/obj/item/reagent_containers/glass/bottle/phosphorus{ pixel_x = -6 }, /obj/effect/decal/cleanable/dirt, @@ -3141,23 +3147,19 @@ /area/ruin/space/has_grav/ancientstation/rnd) "iu" = ( /obj/structure/table, -/obj/item/reagent_containers/glass/beaker/large/iodine{ +/obj/item/reagent_containers/glass/bottle/iodine{ pixel_y = 8 }, -/obj/item/reagent_containers/glass/beaker/large/iron{ +/obj/item/reagent_containers/glass/bottle/iron{ pixel_x = 6 }, -/obj/item/reagent_containers/glass/beaker/large/lithium{ +/obj/item/reagent_containers/glass/bottle/lithium{ pixel_x = -6 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/airalarm/all_access{ - dir = 8; - pixel_x = 24 - }, /turf/open/floor/plasteel/orange/side{ dir = 4 }, @@ -3262,13 +3264,13 @@ /area/ruin/space/has_grav/ancientstation/rnd) "iG" = ( /obj/structure/table, -/obj/item/reagent_containers/glass/beaker/large/potassium{ +/obj/item/reagent_containers/glass/bottle/potassium{ pixel_x = 6 }, -/obj/item/reagent_containers/glass/beaker/large/radium{ +/obj/item/reagent_containers/glass/bottle/radium{ pixel_x = -6 }, -/obj/item/reagent_containers/glass/beaker/large/welding_fuel{ +/obj/item/reagent_containers/glass/bottle/welding_fuel{ pixel_y = 8 }, /obj/effect/decal/cleanable/dirt, @@ -3285,6 +3287,10 @@ brightness = 3; dir = 8 }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, /turf/open/floor/plasteel/cafeteria, /area/ruin/space/has_grav/ancientstation/kitchen) "iI" = ( @@ -3353,10 +3359,10 @@ /area/ruin/space/has_grav/ancientstation/rnd) "iQ" = ( /obj/structure/table, -/obj/item/reagent_containers/glass/beaker/large/sugar{ +/obj/item/reagent_containers/glass/bottle/sugar{ pixel_x = 6 }, -/obj/item/reagent_containers/glass/beaker/large/sulfur{ +/obj/item/reagent_containers/glass/bottle/sulfur{ pixel_x = -6 }, /obj/effect/decal/cleanable/dirt, @@ -3366,10 +3372,10 @@ /area/ruin/space/has_grav/ancientstation/rnd) "iR" = ( /obj/structure/table, -/obj/item/reagent_containers/glass/beaker/large/silver{ +/obj/item/reagent_containers/glass/bottle/silver{ pixel_x = 6 }, -/obj/item/reagent_containers/glass/beaker/large/sodium{ +/obj/item/reagent_containers/glass/bottle/sodium{ pixel_x = -6 }, /obj/effect/decal/cleanable/dirt, @@ -3377,10 +3383,10 @@ /area/ruin/space/has_grav/ancientstation/rnd) "iS" = ( /obj/structure/table, -/obj/item/reagent_containers/glass/beaker/large/sacid{ +/obj/item/reagent_containers/glass/bottle/sacid{ pixel_x = 6 }, -/obj/item/reagent_containers/glass/beaker/large/silicon{ +/obj/item/reagent_containers/glass/bottle/silicon{ pixel_x = -6 }, /obj/effect/decal/cleanable/dirt, @@ -3389,7 +3395,8 @@ }, /area/ruin/space/has_grav/ancientstation/rnd) "iT" = ( -/obj/structure/closet/crate, +/obj/item/defibrillator, +/obj/structure/closet/crate/medical, /turf/open/floor/plating/airless, /area/ruin/space/has_grav/ancientstation/atmo) "iU" = ( @@ -3398,6 +3405,9 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/engi) "iV" = ( @@ -3451,6 +3461,7 @@ /obj/machinery/door/airlock/research{ name = "Research and Development" }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation/rnd) "jd" = ( @@ -3458,6 +3469,7 @@ /obj/machinery/door/airlock/research{ name = "Research and Development" }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation/rnd) "je" = ( @@ -3490,6 +3502,11 @@ /obj/machinery/light/small{ dir = 8 }, +/obj/structure/cable/yellow, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/engi) "jj" = ( @@ -3500,12 +3517,16 @@ /obj/machinery/door/airlock/engineering{ name = "Backup Generator Room" }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/engi) "jl" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 }, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation) @@ -3541,12 +3562,12 @@ /area/ruin/space/has_grav/ancientstation) "jq" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/transit_tube/station/reverse/flipped{ - dir = 1 - }, /obj/structure/transit_tube_pod{ dir = 4 }, +/obj/structure/transit_tube/station/reverse{ + dir = 1 + }, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation) "jr" = ( @@ -3617,10 +3638,12 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/structure/closet/crate, /obj/item/assembly/flash/handheld, /obj/item/assembly/flash/handheld, /obj/item/storage/box/firingpins, +/obj/structure/closet/crate/secure/weapon{ + req_access_txt = "203" + }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/deltacorridor) "jB" = ( @@ -3643,8 +3666,8 @@ /obj/item/stack/cable_coil{ amount = 15 }, -/obj/item/paper, /obj/effect/decal/cleanable/dirt, +/obj/item/paper/fluff/ruins/oldstation/generator_manual, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/engi) "jE" = ( @@ -3662,6 +3685,7 @@ icon_state = "2-8" }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation) "jG" = ( @@ -3713,12 +3737,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation/deltacorridor) -"jN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/item/disk/tech_disk, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation/deltacorridor) "jO" = ( /turf/open/floor/plating/airless, /area/ruin/space/has_grav/ancientstation/atmo) @@ -3734,7 +3752,7 @@ /turf/template_noop, /area/space/nearstation) "jR" = ( -/obj/structure/cable, +/obj/structure/cable/yellow, /turf/open/floor/plating/airless, /area/template_noop) "jS" = ( @@ -3755,6 +3773,7 @@ name = "Cryogenics Room" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation) "jV" = ( @@ -3793,6 +3812,10 @@ "jZ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/meter, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation) "ka" = ( @@ -3800,11 +3823,6 @@ /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plasteel/floorgrime, /area/ruin/space/has_grav/ancientstation) -"kb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/ruin/space/has_grav/ancientstation) "kc" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb{ @@ -4000,9 +4018,8 @@ /area/ruin/space/has_grav/ancientstation/atmo) "kC" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/solar_assembly, -/obj/item/stack/sheet/glass{ - amount = 30 +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation) @@ -4032,6 +4049,7 @@ /obj/structure/closet/crate, /obj/item/reagent_containers/spray/weedspray, /obj/item/reagent_containers/spray/pestspray, +/obj/item/reagent_containers/spray/cleaner, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation) "kH" = ( @@ -4042,6 +4060,7 @@ /obj/item/solar_assembly, /obj/item/solar_assembly, /obj/item/solar_assembly, +/obj/structure/closet/crate/engineering/electrical, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation) "kI" = ( @@ -4052,6 +4071,10 @@ /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/proto) "kJ" = ( @@ -4160,9 +4183,8 @@ /turf/open/floor/plating/airless, /area/ruin/space/has_grav/ancientstation/atmo) "kW" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Air Outlet Pump" +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8 }, /turf/open/floor/plasteel/airless/floorgrime, /area/ruin/space/has_grav/ancientstation/atmo) @@ -4173,7 +4195,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon{ dir = 8; id_tag = "oldstation_air_out"; name = "air output" @@ -4191,6 +4213,7 @@ }, /obj/structure/cable, /obj/item/storage/backpack/old, +/obj/item/storage/backpack/old, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation) "kZ" = ( @@ -4305,6 +4328,7 @@ /obj/machinery/door/airlock/science{ name = "Artificial Program Core Room" }, +/obj/machinery/door/firedoor, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/hivebot) "lz" = ( @@ -4313,6 +4337,10 @@ "lL" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/airalarm/all_access{ + dir = 8; + pixel_x = 24 + }, /turf/open/floor/plasteel/orange/corner, /area/ruin/space/has_grav/ancientstation/rnd) "lM" = ( @@ -4354,34 +4382,207 @@ }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/hivebot) +"nM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/orange/side{ + dir = 8 + }, +/area/ruin/space/has_grav/ancientstation/rnd) "oM" = ( /obj/machinery/door/airlock/external{ name = "Engineering External Access"; - req_access = null; req_access_txt = "200" }, /obj/effect/decal/cleanable/dirt, -/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 }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/engi) +"py" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/mob/living/simple_animal/hostile/hivebot, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"qB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"rv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/space/has_grav/ancientstation) +"sC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation) +"sD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/toilet, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation) +"td" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/particle_accelerator/particle_emitter/center, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"tT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/particle_accelerator/end_cap, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"vG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 9 + }, +/area/ruin/space/has_grav/ancientstation/rnd) +"wC" = ( +/obj/structure/particle_accelerator/power_box, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"yk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation) +"zh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 6 + }, +/area/ruin/space/has_grav/ancientstation/rnd) +"Af" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation) +"BH" = ( +/obj/structure/particle_accelerator/particle_emitter/left, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) "Dj" = ( /obj/structure/transit_tube{ dir = 4 }, /turf/template_noop, /area/space/nearstation) +"FH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/mirror{ + name = "dusty mirror"; + pixel_x = -26 + }, +/obj/machinery/light/small{ + dir = 8; + pixel_y = -10 + }, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation) "Ga" = ( /obj/structure/transit_tube/crossing/horizontal, /turf/template_noop, /area/space/nearstation) +"It" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + name = "dusty mirror"; + pixel_x = 26 + }, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation) +"Ka" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/space/has_grav/ancientstation) +"Ku" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/particle_accelerator/control_box, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"KR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/tank/internals/plasma/full, +/obj/item/tank/internals/plasma/full, +/obj/item/tank/internals/plasma/full, +/obj/item/tank/internals/plasma/full, +/obj/structure/closet/crate/secure/engineering{ + name = "plasma tank crate"; + req_access_txt = "204" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"Ll" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/particle_accelerator/particle_emitter/right, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"LY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/space/has_grav/ancientstation) +"MS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/space/has_grav/ancientstation/deltacorridor) "MZ" = ( /obj/machinery/door/airlock/highsecurity, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -4389,6 +4590,146 @@ }, /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation/hivebot) +"NF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation/rnd) +"NK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/urinal{ + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation) +"OA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/space/has_grav/ancientstation/rnd) +"OC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation) +"OY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/mob/living/simple_animal/hostile/hivebot, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"Pl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/solar_assembly, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation) +"PV" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-25" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/departments/restroom{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/space/has_grav/ancientstation) +"Ql" = ( +/obj/machinery/door/airlock, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation) +"Qp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/window/westright, +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation) +"Sf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/particle_accelerator/fuel_chamber, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"SJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 10 + }, +/area/ruin/space/has_grav/ancientstation/rnd) +"SP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/mirror{ + name = "dusty mirror"; + pixel_x = -26 + }, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation) +"Vs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/space/has_grav/ancientstation/deltacorridor) +"XJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/engi) +"Yc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation) +"Yi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/ancientstation/engi) +"Ym" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/window/westleft, +/obj/machinery/shower{ + dir = 8 + }, +/obj/item/soap/nanotrasen, +/turf/open/floor/plasteel/white, +/area/ruin/space/has_grav/ancientstation) +"ZE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/floorgrime, +/area/ruin/space/has_grav/ancientstation) (1,1,1) = {" aa @@ -5277,7 +5618,7 @@ ei dH dH dH -gf +gc ei ei ei @@ -5564,9 +5905,9 @@ dl ek em fd -fE +Yi gj -fE +Yi hm em ie @@ -5669,7 +6010,7 @@ em iw dl iV -jj +XJ jC dl aa @@ -5801,7 +6142,7 @@ cl cO dm cl -cl +rv eO fg cl @@ -5810,14 +6151,14 @@ cl hq eO ih -cl +rv dm cO -cl +LY jE aG jZ -aY +yk kC aG aG @@ -5863,11 +6204,11 @@ bT cP jl jF -bx -aU -aU +Yc +Af aU aU +Pl kY aG aa @@ -5961,7 +6302,7 @@ co bR aG aG -bN +ZE kD kN kD @@ -6414,12 +6755,12 @@ aa aa aa aG -aS -aY -aY -aY -aY -bC +NK +OC +sC +FH +SP +Ql bN bN cU @@ -6440,10 +6781,10 @@ jb jp bN bC -kb aY -kG aY +kG +aS aY aG aa @@ -6462,25 +6803,25 @@ aa aa aa aG -aG -aG +sD +It bc -aY -aY +Qp +Ym aG -bW +PV bN cV du bN -bN +Ka bN bR bN gz bN bR -bN +Ka bN bN iO @@ -6509,7 +6850,7 @@ aa aa aa aa -aa +aG aG aG aG @@ -7241,7 +7582,7 @@ cz cY dw dW -ey +MS eW ft fR @@ -7249,7 +7590,7 @@ gK ey hC ey -ey +MS iC dw ey @@ -7384,9 +7725,9 @@ bD cC db dy -dY +vG ez -dZ +NF dZ fT eb @@ -7528,11 +7869,11 @@ lx cE dc dy -ea +fo eC dZ dZ -fU +zh gO hh eb @@ -7676,7 +8017,7 @@ ec dZ dZ eC -fV +SJ eb dy dy @@ -7729,12 +8070,12 @@ gQ dy hF lM -eb -lM +OA +nM iQ dy jx -ed +py jV kk kx @@ -7816,7 +8157,7 @@ bD cF db dy -ea +fo eF dZ dZ @@ -7961,7 +8302,7 @@ cH dg dC ee -ca +qB eY cX ed @@ -7971,7 +8312,7 @@ hJ ed ca ee -cX +Vs jf ca cH @@ -8054,19 +8395,19 @@ ac bD cc cc -cc +dh bD aa bD eZ eZ +eZ dh dh dh -eZ -hK -bD -aa +dh +td +tT bD cc cc @@ -8101,24 +8442,24 @@ ac ac bD cd -cJ -dh +OY +KR bD aa bD eZ fz -dh -dh +fz dh hK hK -bD -aa +Ku +Ll +Sf bD jg jz -jN +dh bD aa aa @@ -8158,12 +8499,12 @@ bD fz fz fz -fz hK +hK +BH +wC bD bD -aa -bD bD bD bD @@ -8209,8 +8550,8 @@ bD bD bD bD -aa -aa +bD +bD aa aa aa diff --git a/_maps/RandomZLevels/challenge.dmm b/_maps/RandomZLevels/challenge.dmm index e437503b40..eeaca26b52 100644 --- a/_maps/RandomZLevels/challenge.dmm +++ b/_maps/RandomZLevels/challenge.dmm @@ -664,9 +664,7 @@ /turf/open/floor/plasteel/dark, /area/awaymission/challenge/end) "ce" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/space{ - name = "Syndicate Officer" - }, +/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, /turf/open/floor/plasteel/dark, /area/awaymission/challenge/end) "cf" = ( @@ -707,7 +705,7 @@ /turf/open/floor/wood, /area/awaymission/challenge/end) "cl" = ( -/mob/living/simple_animal/hostile/syndicate/melee, +/mob/living/simple_animal/hostile/syndicate/melee/sword, /turf/open/floor/plasteel/dark, /area/awaymission/challenge/end) "cm" = ( @@ -756,7 +754,7 @@ /turf/open/floor/wood, /area/awaymission/challenge/end) "cu" = ( -/mob/living/simple_animal/hostile/syndicate/melee, +/mob/living/simple_animal/hostile/syndicate/melee/sword, /turf/open/floor/mineral/plastitanium, /area/awaymission/challenge/end) "cv" = ( @@ -823,7 +821,7 @@ /turf/open/floor/circuit, /area/awaymission/challenge/end) "cF" = ( -/mob/living/simple_animal/hostile/syndicate/ranged, +/mob/living/simple_animal/hostile/syndicate/ranged/smg, /turf/open/floor/plasteel/dark, /area/awaymission/challenge/end) "cG" = ( diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index a4d1cc43fb..d67d3ad30d 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -86,7 +86,7 @@ /turf/closed/wall/r_wall, /area/awaymission/research/interior/engineering) "as" = ( -/mob/living/simple_animal/hostile/syndicate/ranged, +/mob/living/simple_animal/hostile/syndicate/ranged/smg, /turf/open/floor/mineral/plastitanium, /area/awaymission/research/interior/engineering) "at" = ( @@ -232,7 +232,7 @@ /turf/closed/wall/mineral/plastitanium, /area/awaymission/research/interior/engineering) "aT" = ( -/mob/living/simple_animal/hostile/syndicate/melee, +/mob/living/simple_animal/hostile/syndicate/melee/sword, /turf/open/floor/plating, /area/awaymission/research/interior/engineering) "aU" = ( @@ -805,7 +805,7 @@ /obj/structure/cable{ icon_state = "2-8" }, -/mob/living/simple_animal/hostile/syndicate/ranged, +/mob/living/simple_animal/hostile/syndicate/ranged/smg, /turf/open/floor/plating, /area/awaymission/research/interior/maint) "cA" = ( @@ -1338,7 +1338,7 @@ /turf/open/floor/plasteel/stairs, /area/awaymission/research/interior/genetics) "ec" = ( -/mob/living/simple_animal/hostile/syndicate/ranged, +/mob/living/simple_animal/hostile/syndicate/ranged/smg, /turf/open/floor/plating, /area/awaymission/research/interior/maint) "ed" = ( @@ -1714,7 +1714,7 @@ /turf/open/floor/plasteel/whiteyellow, /area/awaymission/research/interior) "fn" = ( -/mob/living/simple_animal/hostile/syndicate/melee, +/mob/living/simple_animal/hostile/syndicate/melee/sword, /turf/open/floor/plasteel/white, /area/awaymission/research/interior) "fo" = ( @@ -2673,7 +2673,7 @@ /turf/open/floor/plating, /area/awaymission/research/interior/maint) "if" = ( -/mob/living/simple_animal/hostile/syndicate/ranged, +/mob/living/simple_animal/hostile/syndicate/ranged/smg, /turf/open/floor/plasteel/whitegreen, /area/awaymission/research/interior) "ig" = ( @@ -3116,7 +3116,7 @@ pixel_x = 32; pixel_y = 26 }, -/mob/living/simple_animal/hostile/syndicate/ranged, +/mob/living/simple_animal/hostile/syndicate/ranged/smg, /turf/open/floor/plasteel/whitegreen, /area/awaymission/research/interior) "js" = ( @@ -3235,7 +3235,7 @@ /turf/open/floor/plasteel/whiteblue, /area/awaymission/research/interior/medbay) "jP" = ( -/mob/living/simple_animal/hostile/syndicate/ranged, +/mob/living/simple_animal/hostile/syndicate/ranged/smg, /turf/open/floor/plasteel/whiteblue, /area/awaymission/research/interior/medbay) "jQ" = ( diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm index 8c4dc1adf0..7b5edd5a8f 100644 --- a/_maps/RandomZLevels/spacebattle.dmm +++ b/_maps/RandomZLevels/spacebattle.dmm @@ -58,9 +58,7 @@ /turf/open/floor/mineral/plastitanium, /area/awaymission/spacebattle/syndicate2) "ap" = ( -/mob/living/simple_animal/hostile/syndicate/ranged{ - 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/ranged/spacebattle, /turf/open/floor/mineral/plastitanium, /area/awaymission/spacebattle/syndicate2) "aq" = ( @@ -127,10 +125,7 @@ /turf/open/floor/mineral/plastitanium, /area/awaymission/spacebattle/syndicate3) "aG" = ( -/mob/living/simple_animal/hostile/syndicate/melee{ - deathmessage = "\[src] 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) - }, +/mob/living/simple_animal/hostile/syndicate/melee/spacebattle, /turf/open/floor/mineral/plastitanium, /area/awaymission/spacebattle/syndicate2) "aI" = ( @@ -667,10 +662,6 @@ dir = 2 }, /area/awaymission/spacebattle/cruiser) -"cX" = ( -/mob/living/simple_animal/hostile/syndicate/melee, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) "cY" = ( /obj/effect/spawner/structure/window/hollow/reinforced/end{ dir = 1 @@ -684,9 +675,7 @@ /turf/open/floor/plasteel/bar, /area/awaymission/spacebattle/cruiser) "db" = ( -/mob/living/simple_animal/hostile/syndicate/ranged{ - 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/ranged/spacebattle, /turf/open/floor/mineral/plastitanium, /area/awaymission/spacebattle/syndicate3) "dc" = ( @@ -956,10 +945,7 @@ /turf/open/floor/plating, /area/awaymission/spacebattle/cruiser) "ef" = ( -/mob/living/simple_animal/hostile/syndicate/melee{ - deathmessage = "\[src] 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) - }, +/mob/living/simple_animal/hostile/syndicate/melee/spacebattle, /turf/open/floor/mineral/plastitanium, /area/awaymission/spacebattle/syndicate3) "eg" = ( @@ -970,10 +956,7 @@ /turf/open/floor/plating, /area/awaymission/spacebattle/cruiser) "eh" = ( -/mob/living/simple_animal/hostile/syndicate/melee{ - deathmessage = "\[src] 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) - }, +/mob/living/simple_animal/hostile/syndicate/melee/spacebattle, /turf/open/floor/mineral/plastitanium, /area/awaymission/spacebattle/syndicate1) "ei" = ( @@ -1061,9 +1044,7 @@ /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) "eA" = ( -/mob/living/simple_animal/hostile/syndicate/ranged{ - 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/ranged/spacebattle, /turf/open/floor/mineral/plastitanium, /area/awaymission/spacebattle/syndicate1) "eC" = ( @@ -1239,10 +1220,7 @@ /turf/open/floor/mineral/plastitanium, /area/awaymission/spacebattle/syndicate4) "fm" = ( -/mob/living/simple_animal/hostile/syndicate/melee{ - deathmessage = "\[src] 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) - }, +/mob/living/simple_animal/hostile/syndicate/melee/sword, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) "fn" = ( @@ -1975,12 +1953,6 @@ icon_state = "damaged4" }, /area/awaymission/spacebattle/cruiser) -"hR" = ( -/mob/living/simple_animal/hostile/syndicate/ranged{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/gun/ballistic/automatic/c20r,/obj/item/shield/energy) - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) "hS" = ( /obj/machinery/computer/shuttle{ dir = 4 @@ -2127,7 +2099,7 @@ /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) "it" = ( -/mob/living/simple_animal/hostile/syndicate/ranged, +/mob/living/simple_animal/hostile/syndicate/ranged/smg, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) "iu" = ( @@ -2303,10 +2275,7 @@ /turf/open/floor/plating, /area/awaymission/spacebattle/cruiser) "jr" = ( -/mob/living/simple_animal/hostile/syndicate/melee/space{ - deathmessage = "\[src] falls limp as they release their grip from the energy weapons, activating their self-destruct function!"; - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando) - }, +/mob/living/simple_animal/hostile/syndicate/melee/sword/space, /turf/open/floor/plating/airless, /area/awaymission/spacebattle/cruiser) "js" = ( @@ -2423,10 +2392,7 @@ /turf/open/floor/plating, /area/awaymission/spacebattle/cruiser) "jK" = ( -/mob/living/simple_animal/hostile/syndicate/melee{ - deathmessage = "\[src] 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) - }, +/mob/living/simple_animal/hostile/syndicate/melee/sword, /turf/open/floor/plasteel/blue/side{ dir = 8 }, @@ -2487,9 +2453,7 @@ /turf/open/floor/plasteel/airless, /area/awaymission/spacebattle/cruiser) "jU" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/space{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,/obj/item/gun/ballistic/automatic/c20r) - }, +/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, /turf/open/floor/plasteel/airless, /area/awaymission/spacebattle/cruiser) "jV" = ( @@ -2514,9 +2478,7 @@ /turf/open/floor/engine, /area/awaymission/spacebattle/cruiser) "jY" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/space{ - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,/obj/item/gun/ballistic/automatic/c20r) - }, +/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, /turf/open/floor/plating/airless, /area/awaymission/spacebattle/cruiser) "jZ" = ( @@ -2624,9 +2586,7 @@ /turf/open/floor/plating, /area/awaymission/spacebattle/cruiser) "ku" = ( -/mob/living/simple_animal/hostile/syndicate/ranged{ - 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/ranged/smg, /turf/open/floor/plasteel/white, /area/awaymission/spacebattle/cruiser) "kv" = ( @@ -2689,7 +2649,7 @@ /obj/item/ammo_casing/c10mm, /obj/item/ammo_casing/c10mm, /obj/item/ammo_casing/c10mm, -/mob/living/simple_animal/hostile/syndicate/ranged, +/mob/living/simple_animal/hostile/syndicate/ranged/smg, /turf/open/floor/plasteel/freezer, /area/awaymission/spacebattle/cruiser) "kH" = ( @@ -25506,7 +25466,7 @@ cc cc cc cc -cX +fm cM cN cN @@ -33450,7 +33410,7 @@ cc cc cc cc -hR +it cc fL cn @@ -36289,7 +36249,7 @@ cc gd gz cc -hR +it gZ bT cc @@ -37054,7 +37014,7 @@ eD cc eY cc -hR +it ft cc cc @@ -51182,7 +51142,7 @@ bM bM bM cm -hR +it cc cc cc @@ -52727,7 +52687,7 @@ cc cc cc cc -hR +it cc cc cc diff --git a/_maps/RandomZLevels/wildwest.dmm b/_maps/RandomZLevels/wildwest.dmm index dea7765bf9..d467439eca 100644 --- a/_maps/RandomZLevels/wildwest.dmm +++ b/_maps/RandomZLevels/wildwest.dmm @@ -242,7 +242,7 @@ }, /area/awaymission/wildwest/mines) "bf" = ( -/mob/living/simple_animal/hostile/syndicate/ranged, +/mob/living/simple_animal/hostile/syndicate/ranged/smg, /turf/open/floor/plating/ironsand{ icon_state = "ironsand1" }, @@ -279,7 +279,7 @@ /turf/open/floor/wood, /area/awaymission/wildwest/mines) "bn" = ( -/mob/living/simple_animal/hostile/syndicate/ranged, +/mob/living/simple_animal/hostile/syndicate/ranged/smg, /turf/open/floor/plating, /area/awaymission/wildwest/refine) "bo" = ( @@ -336,7 +336,7 @@ }, /area/awaymission/wildwest/mines) "bz" = ( -/mob/living/simple_animal/hostile/syndicate/ranged, +/mob/living/simple_animal/hostile/syndicate/ranged/smg, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -359,7 +359,7 @@ /turf/open/floor/wood, /area/awaymission/wildwest/mines) "bE" = ( -/mob/living/simple_animal/hostile/syndicate/ranged, +/mob/living/simple_animal/hostile/syndicate/ranged/smg, /turf/open/floor/wood, /area/awaymission/wildwest/mines) "bF" = ( @@ -804,9 +804,7 @@ /area/awaymission/wildwest/gov) "cT" = ( /obj/effect/decal/remains/human, -/mob/living/simple_animal/hostile/syndicate/ranged/space{ - name = "Syndicate Commander" - }, +/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, /turf/open/floor/plating, /area/awaymission/wildwest/refine) "cU" = ( @@ -1310,7 +1308,7 @@ }, /area/awaymission/wildwest/mines) "ew" = ( -/mob/living/simple_animal/hostile/syndicate/ranged, +/mob/living/simple_animal/hostile/syndicate/ranged/smg, /turf/open/floor/carpet, /area/awaymission/wildwest/mines) "ex" = ( diff --git a/_maps/Summer_Ball_Progress_V2.4.dmm b/_maps/Summer_Ball_Progress_V2.4.dmm index 24a238e4a8..fe343fba9d 100644 --- a/_maps/Summer_Ball_Progress_V2.4.dmm +++ b/_maps/Summer_Ball_Progress_V2.4.dmm @@ -134,7 +134,7 @@ "cD" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Station Security"; req_access_txt = "63"; security_level = 6},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/vault{dir = 5},/area/awaymission/beach) "cE" = (/obj/structure/closet/crate/bin,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel/red/side{dir = 9},/area/awaymission/beach) "cF" = (/obj/structure/closet/secure_closet/security/sec,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel/red/side{dir = 8},/area/awaymission/beach) -"cG" = (/obj/item/twohanded/required/kirbyplants{icon_state = "plant-21"; pixel_x = 0; pixel_y = 3},/turf/open/floor/plasteel/red/side{dir = 5},/area/awaymission/beach) +"cG" = (/obj/item/twohanded/required/kirbyplants{icon_state = "plant-21"; pixel_y = 3},/turf/open/floor/plasteel/red/side{dir = 5},/area/awaymission/beach) "cH" = (/turf/open/floor/plasteel/red/side{dir = 9},/area/awaymission/beach) "cI" = (/obj/structure/closet/secure_closet/security/sec,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel/red/side{dir = 1},/area/awaymission/beach) "cJ" = (/obj/structure/closet/secure_closet/security/sec,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel/red/side{dir = 5},/area/awaymission/beach) @@ -156,7 +156,7 @@ "cZ" = (/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/vault{dir = 1},/area/awaymission/beach) "da" = (/obj/structure/rack,/obj/item/storage/box/flashes{pixel_x = 3},/obj/item/storage/box/teargas{pixel_x = 1; pixel_y = -2},/turf/open/floor/plasteel/vault/side,/area/awaymission/beach) "db" = (/obj/structure/table,/obj/item/storage/box/donkpockets{pixel_y = 5},/turf/open/floor/plasteel/vault/side,/area/awaymission/beach) -"dc" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = 0; pixel_y = 5},/turf/open/floor/plasteel/vault/side,/area/awaymission/beach) +"dc" = (/obj/structure/table,/obj/machinery/microwave{pixel_y = 5},/turf/open/floor/plasteel/vault/side,/area/awaymission/beach) "dd" = (/obj/structure/table/reinforced,/obj/item/restraints/handcuffs,/obj/item/assembly/flash/handheld,/turf/open/floor/plasteel/red,/area/awaymission/beach) "de" = (/obj/structure/table/reinforced,/obj/item/book/manual/wiki/security_space_law,/obj/item/radio,/obj/structure/reagent_dispensers/peppertank{pixel_x = -32},/turf/open/floor/plasteel/red/side{dir = 5},/area/awaymission/beach) "df" = (/turf/open/floor/plasteel/red/side{dir = 5},/area/awaymission/beach) @@ -181,8 +181,8 @@ "dy" = (/obj/effect/turf_decal/bot,/turf/open/floor/plasteel/red/side{dir = 8},/area/awaymission/beach) "dz" = (/obj/effect/turf_decal/bot,/turf/open/floor/plasteel/red/side{dir = 4},/area/awaymission/beach) "dA" = (/turf/open/floor/plasteel/red/corner,/area/awaymission/beach) -"dB" = (/obj/item/twohanded/required/kirbyplants{icon_state = "plant-21"; pixel_x = 0; pixel_y = 3},/turf/open/floor/plasteel/red/side{dir = 6},/area/awaymission/beach) -"dC" = (/obj/effect/turf_decal/stripes/line{dir = 10},/obj/item/twohanded/required/kirbyplants{icon_state = "plant-17"; pixel_x = 5; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 10},/area/awaymission/beach) +"dB" = (/obj/item/twohanded/required/kirbyplants{icon_state = "plant-21"; pixel_y = 3},/turf/open/floor/plasteel/red/side{dir = 6},/area/awaymission/beach) +"dC" = (/obj/effect/turf_decal/stripes/line{dir = 10},/obj/item/twohanded/required/kirbyplants{icon_state = "plant-17"; pixel_x = 5},/turf/open/floor/plasteel/red/side{dir = 10},/area/awaymission/beach) "dD" = (/obj/effect/turf_decal/stripes/corner{dir = 1},/turf/open/floor/plasteel/red/side,/area/awaymission/beach) "dE" = (/obj/effect/turf_decal/stripes/corner,/turf/open/floor/plasteel/red/side,/area/awaymission/beach) "dF" = (/obj/effect/turf_decal/stripes/line,/obj/structure/window/spawner/west,/obj/structure/chair/office{icon_state = "chair"; dir = 1},/turf/open/floor/plasteel/red/side,/area/awaymission/beach) @@ -235,7 +235,7 @@ "eA" = (/obj/machinery/vending/security{contraband = list(/obj/item/firing_pin/implant/pindicate = 1, /obj/item/storage/fancy/donut_box = 4); name = "\improper SecMechanicus"; products = list(/obj/item/restraints/handcuffs = 15, /obj/item/restraints/handcuffs/cable/zipties = 20, /obj/item/grenade/flashbang = 5, /obj/item/assembly/flash/handheld = 7, /obj/item/reagent_containers/food/snacks/donut/jelly = 8, /obj/item/storage/box/evidence = 12, /obj/item/flashlight/seclite = 1, /obj/item/restraints/legcuffs/bola/energy = 7)},/obj/effect/turf_decal/bot,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/awaymission/beach) "eB" = (/obj/structure/bed,/obj/item/bedsheet,/turf/open/floor/plasteel/vault{dir = 8},/area/awaymission/beach) "eC" = (/obj/machinery/door/airlock/vault{locked = 1; name = "Armoury Vault"; req_access_txt = "58"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/vault,/area/awaymission/beach) -"eD" = (/obj/item/twohanded/required/kirbyplants{icon_state = "plant-21"; pixel_x = 0; pixel_y = 3},/turf/open/floor/plasteel/red/side{dir = 10},/area/awaymission/beach) +"eD" = (/obj/item/twohanded/required/kirbyplants{icon_state = "plant-21"; pixel_y = 3},/turf/open/floor/plasteel/red/side{dir = 10},/area/awaymission/beach) "eE" = (/turf/open/floor/plasteel/red/side,/area/awaymission/beach) "eF" = (/obj/structure/closet/wardrobe/red,/obj/item/clothing/under/rank/security/grey,/obj/item/clothing/under/rank/security/grey,/obj/item/clothing/under/rank/security/grey,/obj/item/storage/backpack/satchel/sec,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel/red/side{dir = 4},/area/awaymission/beach) "eG" = (/obj/effect/landmark/start/shaft_miner,/turf/open/floor/plasteel/whiteyellow,/area/awaymission/beach) @@ -363,7 +363,7 @@ "gY" = (/obj/structure/closet/crate/wooden{name = "experimental costume crate"},/obj/item/clothing/mask/chameleon,/obj/item/clothing/head/chameleon,/obj/item/clothing/suit/chameleon,/obj/item/clothing/shoes/chameleon,/obj/item/clothing/under/chameleon,/obj/effect/turf_decal/bot,/turf/open/floor/plasteel/darkbrown,/area/awaymission/beach) "gZ" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/newscaster{pixel_y = -32},/obj/machinery/button/door{id = "Toilet3"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = -25; specialfunctions = 4},/turf/open/floor/plasteel/white,/area/awaymission/beach) "ha" = (/obj/machinery/door/airlock{id_tag = "Toilet3"; name = "Unit 3"},/turf/open/floor/plasteel/freezer,/area/awaymission/beach) -"hb" = (/obj/structure/sink{dir = 4; pixel_x = 11},/obj/structure/mirror{pixel_x = 32; step_x = 0},/turf/open/floor/plasteel/white,/area/awaymission/beach) +"hb" = (/obj/structure/sink{dir = 4; pixel_x = 11},/obj/structure/mirror{pixel_x = 32},/turf/open/floor/plasteel/white,/area/awaymission/beach) "hc" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/vault/side{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/awaymission/beach) "hd" = (/obj/structure/table/wood,/turf/open/floor/plasteel/vault/side{tag = "icon-vault (NORTHWEST)"; icon_state = "vault"; dir = 9},/area/awaymission/beach) "he" = (/obj/structure/table/wood,/obj/item/clipboard,/obj/item/folder,/obj/item/storage/fancy/candle_box{pixel_x = 5; pixel_y = 5},/obj/item/storage/fancy/candle_box{pixel_x = 3},/turf/open/floor/plasteel/vault/side{tag = "icon-vault (NORTHWEST)"; icon_state = "vault"; dir = 9},/area/awaymission/beach) @@ -434,8 +434,8 @@ "ir" = (/obj/machinery/icecream_vat,/turf/open/floor/plasteel/freezer,/area/awaymission/beach) "is" = (/obj/structure/closet/secure_closet/freezer/kitchen{anchored = 1; name = "fridge"},/obj/item/reagent_containers/food/snacks/mint,/turf/open/floor/plasteel/cafeteria,/area/awaymission/beach) "it" = (/turf/open/floor/plasteel/cafeteria,/area/awaymission/beach) -"iu" = (/obj/machinery/button/door{id = "SB2018kitchen"; name = "Ball Food Court Shutters"; pixel_x = 24; pixel_y = 0; req_access_txt = "28"; req_one_access_txt = "0"},/obj/structure/sink{dir = 4; pixel_x = 11},/turf/open/floor/plasteel/cafeteria,/area/awaymission/beach) -"iv" = (/obj/machinery/button/door{id = "SB2018bar"; name = "Ball Bar Shutters"; pixel_x = -24; pixel_y = 0; req_access_txt = "25"; req_one_access_txt = "0"},/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/vault,/area/awaymission/beach) +"iu" = (/obj/machinery/button/door{id = "SB2018kitchen"; name = "Ball Food Court Shutters"; pixel_x = 24; req_access_txt = "28"; req_one_access_txt = "0"},/obj/structure/sink{dir = 4; pixel_x = 11},/turf/open/floor/plasteel/cafeteria,/area/awaymission/beach) +"iv" = (/obj/machinery/button/door{id = "SB2018bar"; name = "Ball Bar Shutters"; pixel_x = -24; req_access_txt = "25"; req_one_access_txt = "0"},/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/vault,/area/awaymission/beach) "iw" = (/turf/open/floor/plasteel/vault,/area/awaymission/beach) "ix" = (/obj/structure/rack,/obj/item/reagent_containers/food/drinks/trophy/bronze_cup,/obj/item/reagent_containers/food/drinks/trophy,/obj/item/reagent_containers/food/drinks/trophy,/obj/item/reagent_containers/food/drinks/trophy,/turf/open/floor/plasteel/bar,/area/awaymission/beach) "iy" = (/obj/structure/rack,/obj/item/storage/box/cups,/obj/item/storage/box/cups,/turf/open/floor/plasteel/bar,/area/awaymission/beach) @@ -459,7 +459,7 @@ "iQ" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters/preopen{id = "SB2018kitchen"; name = "Ball Food Court Shutters"},/turf/open/floor/plasteel/vault,/area/awaymission/beach) "iR" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters/preopen{id = "SB2018bar"; name = "Ball Bar Shutters"},/turf/open/floor/plasteel/vault,/area/awaymission/beach) "iS" = (/obj/machinery/chem_dispenser/drinks{dir = 8},/obj/structure/table/wood,/turf/open/floor/plasteel/vault,/area/awaymission/beach) -"iT" = (/obj/structure/table,/obj/item/gun/ballistic/revolver/doublebarrel{pixel_y = -6},/obj/item/ammo_casing/shotgun/stunslug{name = "emergency taser slug"; pixel_x = -5; pixel_y = 8},/obj/item/ammo_casing/shotgun/stunslug{name = "emergency taser slug"; pixel_x = 0; pixel_y = 8},/obj/item/ammo_casing/shotgun/stunslug{name = "emergency taser slug"; pixel_x = 5; pixel_y = 8},/obj/item/ammo_casing/shotgun/stunslug{name = "emergency taser slug"; pixel_x = 10; pixel_y = 8},/turf/open/floor/plasteel/bar,/area/awaymission/beach) +"iT" = (/obj/structure/table,/obj/item/gun/ballistic/revolver/doublebarrel{pixel_y = -6},/obj/item/ammo_casing/shotgun/stunslug{name = "emergency taser slug"; pixel_x = -5; pixel_y = 8},/obj/item/ammo_casing/shotgun/stunslug{name = "emergency taser slug"; pixel_y = 8},/obj/item/ammo_casing/shotgun/stunslug{name = "emergency taser slug"; pixel_x = 5; pixel_y = 8},/obj/item/ammo_casing/shotgun/stunslug{name = "emergency taser slug"; pixel_x = 10; pixel_y = 8},/turf/open/floor/plasteel/bar,/area/awaymission/beach) "iU" = (/obj/machinery/gibber,/turf/open/floor/plasteel/freezer,/area/awaymission/beach) "iV" = (/obj/machinery/deepfryer,/turf/open/floor/plasteel/cafeteria,/area/awaymission/beach) "iW" = (/obj/machinery/chem_dispenser/drinks/beer{dir = 8},/obj/structure/table/wood,/turf/open/floor/plasteel/vault,/area/awaymission/beach) @@ -491,7 +491,7 @@ "jw" = (/obj/structure/toilet{dir = 8},/turf/open/floor/plasteel/white,/area/awaymission/beach) "jx" = (/obj/structure/bookcase/random,/turf/open/floor/plasteel/vault/side{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/awaymission/beach) "jy" = (/obj/structure/flora/rock,/turf/open/floor/plating/beach/sand,/area/awaymission/beach) -"jz" = (/obj/effect/turf_decal/stripes/line{dir = 5},/obj/machinery/button/door{id = "Race"; name = "Starting Line"; pixel_x = 24; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/open/floor/wood,/area/awaymission/beach) +"jz" = (/obj/effect/turf_decal/stripes/line{dir = 5},/obj/machinery/button/door{id = "Race"; name = "Starting Line"; pixel_x = 24},/obj/machinery/light/small{dir = 4},/turf/open/floor/wood,/area/awaymission/beach) "jA" = (/obj/structure/toilet{dir = 4},/turf/open/floor/plasteel/white,/area/awaymission/beach) "jB" = (/obj/machinery/shower{icon_state = "shower"; dir = 1},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white,/area/awaymission/beach) "jC" = (/obj/effect/turf_decal/sand,/turf/open/floor/plasteel/white,/area/awaymission/beach) diff --git a/_maps/boxstation.json b/_maps/boxstation.json index 92d377171f..143fcae5bc 100644 --- a/_maps/boxstation.json +++ b/_maps/boxstation.json @@ -5,7 +5,7 @@ "shuttles": { "cargo": "cargo_box", "ferry": "ferry_fancy", - "whiteship": "whiteship_meta", + "whiteship": "whiteship_box", "emergency": "emergency_box" } } diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 1a2d9d30bb..e0c10cc5f4 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -1,3 +1,4 @@ +<<<<<<< HEAD "a" = (/turf/open/floor/wood,/area/space) "b" = (/turf/open/floor/holofloor/beach/coast_t,/area/space) "c" = (/turf/open/floor/holofloor/beach/coast_b,/area/space) @@ -266,4 +267,119506 @@ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd +======= +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aaa" = ( +/turf/open/space/basic, +/area/space) +"aab" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aac" = ( +/obj/machinery/requests_console{ + department = "Bar"; + departmentType = 2; + pixel_x = 30; + receive_ore_updates = 1 + }, +/obj/machinery/camera{ + c_tag = "Bar"; + dir = 8 + }, +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aad" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 1 + }, +/turf/open/floor/wood, +/area/maintenance/port/aft) +"aae" = ( +/obj/effect/landmark/carpspawn, +/turf/open/space, +/area/space) +"aaf" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"aag" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space/nearstation) +"aah" = ( +/obj/structure/sign/warning/securearea{ + pixel_y = -32 + }, +/turf/open/space, +/area/space/nearstation) +"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, +/turf/open/floor/plasteel/green/side{ + dir = 9 + }, +/area/security/prison) +"aao" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plating, +/area/security/prison) +"aap" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/carrot, +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/security/prison) +"aaq" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/machinery/hydroponics/soil, +/obj/item/plant_analyzer, +/obj/machinery/camera{ + c_tag = "Prison Common Room"; + network = list("ss13","prison") + }, +/turf/open/floor/plasteel/green/side{ + dir = 5 + }, +/area/security/prison) +"aar" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/glowshroom, +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/security/prison) +"aas" = ( +/obj/structure/sink{ + pixel_y = 20 + }, +/turf/open/floor/plating, +/area/security/prison) +"aat" = ( +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aau" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aav" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aaw" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/security/prison) +"aax" = ( +/mob/living/simple_animal/mouse/brown/Tom, +/turf/open/floor/plating, +/area/security/prison) +"aay" = ( +/turf/open/floor/plating, +/area/security/prison) +"aaz" = ( +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plating, +/area/security/prison) +"aaA" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aaB" = ( +/obj/structure/window/reinforced, +/obj/machinery/hydroponics/soil, +/obj/item/seeds/potato, +/turf/open/floor/plasteel/green/side{ + dir = 10 + }, +/area/security/prison) +"aaC" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/prison) +"aaD" = ( +/obj/structure/window/reinforced, +/obj/machinery/hydroponics/soil, +/obj/item/seeds/grass, +/turf/open/floor/plasteel/green/side{ + dir = 2 + }, +/area/security/prison) +"aaE" = ( +/obj/structure/window/reinforced, +/obj/machinery/hydroponics/soil, +/obj/item/cultivator, +/turf/open/floor/plasteel/green/side{ + dir = 6 + }, +/area/security/prison) +"aaF" = ( +/obj/structure/window/reinforced, +/obj/machinery/hydroponics/soil, +/obj/item/cultivator, +/turf/open/floor/plasteel/green/side{ + dir = 2 + }, +/area/security/prison) +"aaG" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aaH" = ( +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aaI" = ( +/obj/structure/bookcase, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aaJ" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aaK" = ( +/obj/machinery/washing_machine, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"aaL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"aaM" = ( +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/structure/table, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aaN" = ( +/obj/structure/table, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/security/prison) +"aaO" = ( +/obj/structure/table, +/obj/item/storage/pill_bottle/dice, +/turf/open/floor/plasteel, +/area/security/prison) +"aaP" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"aaQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"aaR" = ( +/obj/structure/lattice, +/obj/structure/sign/warning/securearea{ + pixel_y = -32 + }, +/turf/open/space, +/area/space/nearstation) +"aaS" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"aaT" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space, +/area/space/nearstation) +"aaU" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aaV" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/security/prison) +"aaW" = ( +/obj/structure/table, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel, +/area/security/prison) +"aaX" = ( +/obj/machinery/washing_machine, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"aaY" = ( +/obj/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"aaZ" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/security/armory) +"aba" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space, +/area/space/nearstation) +"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/floorgrime, +/area/security/prison) +"abg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/security/execution/transfer) +"abh" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"abi" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/item/soap/nanotrasen, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"abj" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"abk" = ( +/obj/machinery/keycard_auth{ + pixel_x = 24; + pixel_y = 10 + }, +/obj/structure/table/wood, +/obj/item/radio/off, +/obj/item/taperecorder, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"abl" = ( +/obj/machinery/vending/security, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"abm" = ( +/obj/structure/table, +/obj/item/storage/box/firingpins, +/obj/item/storage/box/firingpins, +/obj/item/key/security, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"abn" = ( +/obj/structure/rack, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/item/gun/energy/e_gun/dragnet, +/obj/item/gun/energy/e_gun/dragnet, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"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, +/area/crew_quarters/heads/hos) +"abr" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"abs" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/tracker, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port/fore) +"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"; + name = "blast door" + }, +/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/vending/cola/random, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"aby" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/security/execution/transfer) +"abz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"abA" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"abB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"abC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"abD" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"abE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"abF" = ( +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"abG" = ( +/obj/machinery/door/window/westleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Unisex Showers" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"abH" = ( +/obj/structure/table, +/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/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"abI" = ( +/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/machinery/light{ + dir = 1 + }, +/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 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"abJ" = ( +/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/machinery/camera/motion{ + c_tag = "Armory Motion Sensor"; + dir = 2 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"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/floorgrime, +/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/floorgrime, +/area/security/prison) +"abM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"abN" = ( +/obj/structure/closet/secure_closet/lethalshots, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"abO" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"abP" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"abQ" = ( +/obj/structure/rack, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/item/gun/energy/ionrifle, +/obj/item/gun/energy/temperature/security, +/obj/item/clothing/suit/armor/laserproof, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"abR" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"abS" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"abT" = ( +/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/carpet, +/area/crew_quarters/heads/hos) +"abU" = ( +/obj/machinery/computer/card/minor/hos, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"abV" = ( +/obj/machinery/computer/security/hos, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"abW" = ( +/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, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"abX" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/tracker, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/fore) +"abY" = ( +/obj/structure/grille, +/turf/open/space, +/area/space/nearstation) +"abZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/fore) +"aca" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"acb" = ( +/obj/machinery/sparker{ + dir = 2; + 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/floorgrime, +/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/floorgrime, +/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/floorgrime, +/area/security/prison) +"ach" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restroom" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"aci" = ( +/obj/vehicle/ridden/secway, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"acj" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/suit_storage_unit/hos, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"ack" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"acl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"acm" = ( +/obj/machinery/power/apc/highcap/five_k{ + dir = 4; + areastring = "/area/ai_monitored/security/armory"; + name = "Armory APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"acn" = ( +/obj/item/storage/secure/safe/HoS{ + pixel_x = 35 + }, +/obj/structure/closet/secure_closet/hos, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"aco" = ( +/obj/structure/closet/bombcloset/security, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"acp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"acq" = ( +/obj/effect/landmark/secequipment, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"acr" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"acs" = ( +/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/carpet, +/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/structure/closet/secure_closet/contraband/armory, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"acw" = ( +/obj/structure/sign/warning/securearea{ + pixel_y = -32 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space/nearstation) +"acx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"acy" = ( +/obj/structure/lattice, +/obj/item/stack/cable_coil/random, +/turf/open/space, +/area/space/nearstation) +"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{ + dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"acB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/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."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_y = 24; + prison_radio = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/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/floorgrime, +/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."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_y = 24; + prison_radio = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"acF" = ( +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"acG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/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."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_y = 24; + prison_radio = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/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" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/execution/transfer) +"acJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"acK" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"acL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"acM" = ( +/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/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plasteel{ + dir = 2 + }, +/area/ai_monitored/security/armory) +"acN" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"acO" = ( +/obj/structure/closet/l3closet/security, +/obj/machinery/camera{ + c_tag = "Brig Equipment Room"; + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"acP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/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/structure/table/wood, +/obj/item/flashlight/lamp/green{ + on = 0; + pixel_x = -3; + pixel_y = 8 + }, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"acS" = ( +/obj/item/book/manual/wiki/security_space_law, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"acT" = ( +/obj/machinery/door/window/eastleft{ + name = "armoury desk"; + req_access_txt = "1" + }, +/obj/machinery/door/window/westleft{ + name = "armoury desk"; + req_access_txt = "3" + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel, +/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/security/main) +"acV" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Port Auxiliary Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port/fore) +"acW" = ( +/obj/structure/cable, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/fore) +"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/floorgrime, +/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/floorgrime, +/area/security/prison) +"adb" = ( +/obj/structure/table, +/obj/item/paper, +/obj/item/pen, +/turf/open/floor/plasteel/floorgrime, +/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/floorgrime, +/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/floorgrime, +/area/security/prison) +"ade" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"adf" = ( +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"adg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"adh" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"adi" = ( +/obj/machinery/flasher/portable, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"adj" = ( +/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/effect/turf_decal/bot{ + dir = 2 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel{ + dir = 2 + }, +/area/ai_monitored/security/armory) +"adk" = ( +/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/effect/turf_decal/bot{ + dir = 2 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel{ + dir = 2 + }, +/area/ai_monitored/security/armory) +"adl" = ( +/obj/machinery/door/poddoor/shutters{ + id = "armory"; + name = "Armoury Shutter" + }, +/obj/machinery/button/door{ + id = "armory"; + name = "Armory Shutters"; + pixel_y = -26; + req_access_txt = "3" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"adm" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"adn" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"ado" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"adp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"adq" = ( +/obj/structure/table/wood, +/obj/item/instrument/guitar{ + pixel_x = -7 + }, +/obj/item/instrument/eguitar{ + pixel_x = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"adr" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/security/main) +"ads" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Port Auxiliary Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/fore) +"adt" = ( +/obj/structure/cable, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"adu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/fore) +"adv" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/fore) +"adw" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/fore) +"adx" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/fore) +"ady" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/fore) +"adz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/fore) +"adA" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/fore) +"adB" = ( +/obj/structure/sign/warning/securearea{ + pixel_x = 32 + }, +/turf/open/space, +/area/space/nearstation) +"adC" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/scalpel{ + pixel_y = 12 + }, +/obj/item/circular_saw, +/obj/item/hemostat, +/obj/item/retractor, +/obj/item/surgical_drapes, +/obj/item/razor, +/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/floorgrime, +/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/floorgrime, +/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/floorgrime, +/area/security/prison) +"adK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"adL" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"adM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"adN" = ( +/obj/machinery/power/apc{ + dir = 8; + areastring = "/area/crew_quarters/heads/hos"; + name = "Head of Security's Office APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"adO" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"adP" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"adQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"adR" = ( +/turf/closed/wall/r_wall, +/area/security/main) +"adS" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"adT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"adU" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"adV" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"adW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"adX" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"adY" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"adZ" = ( +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Port Auxiliary Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port/fore) +"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, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/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, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/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, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/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, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/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 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/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") + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/prison) +"aeo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/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, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/prison) +"aer" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Prison Wing APC"; + areastring = "/area/security/prison"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/prison) +"aes" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel/red/side, +/area/ai_monitored/security/armory) +"aet" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"aeu" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel/red/side, +/area/ai_monitored/security/armory) +"aev" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"aew" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"aex" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"aey" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Head of Security"; + req_access_txt = "58" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"aez" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"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/pen, +/turf/open/floor/plasteel, +/area/security/main) +"aeC" = ( +/obj/machinery/camera{ + c_tag = "Security Escape Pod"; + dir = 4 + }, +/turf/open/floor/plating, +/area/security/main) +"aeG" = ( +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Port Auxiliary Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/fore) +"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 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/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" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/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/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/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/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"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/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_x = -30 + }, +/obj/machinery/camera{ + c_tag = "Brig Control Room"; + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/rack, +/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 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aeX" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"aeY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/window/southleft{ + name = "Armory"; + req_access_txt = "3" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"aeZ" = ( +/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{ + dir = 10 + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"afa" = ( +/obj/docking_port/stationary{ + dir = 4; + dwidth = 12; + height = 18; + id = "emergency_home"; + name = "BoxStation emergency evac bay"; + width = 32 + }, +/turf/open/space/basic, +/area/space) +"afb" = ( +/obj/machinery/recharger, +/obj/structure/table, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"afc" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"afd" = ( +/obj/item/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/vending/wardrobe/sec_wardrobe, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"afe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"aff" = ( +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/main) +"afg" = ( +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"afh" = ( +/obj/effect/landmark/start/security_officer, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"afi" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"afj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"afk" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/main) +"afn" = ( +/turf/open/floor/plating, +/area/security/main) +"afo" = ( +/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) +"afp" = ( +/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/space/basic, +/area/space) +"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/structure/table, +/obj/item/restraints/handcuffs, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/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/structure/table, +/obj/item/electropack, +/turf/open/floor/plasteel/red/side, +/area/security/prison) +"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, +/turf/open/floor/plasteel/red/side, +/area/security/prison) +"afG" = ( +/obj/structure/table, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/item/storage/box/hug, +/obj/item/razor{ + pixel_x = -6 + }, +/turf/open/floor/plasteel/red/side, +/area/security/prison) +"afH" = ( +/obj/structure/closet/secure_closet/brig, +/turf/open/floor/plasteel/red/side, +/area/security/prison) +"afI" = ( +/turf/open/floor/plasteel/red/side, +/area/security/prison) +"afJ" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 1; + pixel_y = -27 + }, +/turf/open/floor/plasteel/red/side, +/area/security/prison) +"afK" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Evidence Storage"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"afL" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"afM" = ( +/turf/open/floor/plasteel, +/area/security/brig) +"afN" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/red/side, +/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 = "Equipment Room"; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"afT" = ( +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"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, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"agc" = ( +/obj/structure/closet/emcloset, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/security/main) +"agd" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"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{ + dir = 2; + name = "Prisoner Transfer Centre"; + areastring = "/area/security/execution/transfer"; + 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, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/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, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/prison) +"agl" = ( +/obj/machinery/door/airlock/security{ + name = "Interrogation"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"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/machinery/computer/security, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agp" = ( +/obj/machinery/computer/prisoner, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/window/southleft{ + base_state = "right"; + icon_state = "right"; + name = "Armory"; + req_access_txt = "3" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"agr" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ags" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"agt" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agu" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agw" = ( +/obj/structure/table, +/obj/machinery/syndicatebomb/training, +/obj/item/gun/energy/laser/practice, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/main) +"agx" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"agy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"agz" = ( +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/main) +"agA" = ( +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = 30 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/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/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/brig) +"agE" = ( +/obj/structure/table, +/obj/item/folder/red, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/security/main) +"agF" = ( +/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/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, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"agH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"agI" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"agJ" = ( +/obj/item/cigbutt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"agK" = ( +/turf/open/floor/plasteel/dark, +/area/security/prison) +"agL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"agM" = ( +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/reagent_containers/spray/cleaner, +/obj/structure/table/glass, +/turf/open/floor/plasteel/whitered/side{ + dir = 9 + }, +/area/security/brig) +"agN" = ( +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/regular, +/obj/structure/table/glass, +/turf/open/floor/plasteel/whitered/side{ + dir = 1 + }, +/area/security/brig) +"agO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"agP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"agQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agR" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/warden) +"agS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agT" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agU" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agV" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agW" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/warden) +"agX" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agY" = ( +/obj/structure/table, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"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/landmark/start/security_officer, +/turf/open/floor/plasteel, +/area/security/main) +"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/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/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/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/iv_drip, +/obj/item/reagent_containers/blood, +/turf/open/floor/plasteel/whitered/side{ + dir = 5 + }, +/area/security/brig) +"ahn" = ( +/turf/closed/wall, +/area/maintenance/fore/secondary) +"aho" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"ahp" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"ahq" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"ahr" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"ahs" = ( +/obj/item/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_y = 24 + }, +/obj/structure/table/glass, +/obj/machinery/computer/med_data/laptop, +/turf/open/floor/plasteel/whitered/side{ + dir = 1 + }, +/area/security/brig) +"aht" = ( +/turf/open/floor/plasteel/whitered/corner{ + dir = 8 + }, +/area/security/brig) +"ahu" = ( +/obj/item/storage/box/bodybags, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/item/reagent_containers/syringe{ + name = "steel point" + }, +/obj/item/reagent_containers/glass/bottle/charcoal, +/obj/item/reagent_containers/glass/bottle/epinephrine, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table/glass, +/turf/open/floor/plasteel/whitered/side{ + dir = 10 + }, +/area/security/brig) +"ahv" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Brig Control APC"; + areastring = "/area/security/warden"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahx" = ( +/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/showroomfloor, +/area/security/warden) +"ahy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahA" = ( +/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/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"ahB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"ahD" = ( +/obj/machinery/door/window/westleft{ + base_state = "left"; + dir = 4; + icon_state = "left"; + name = "Brig Infirmary" + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 4 + }, +/area/security/brig) +"ahE" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig Control"; + req_access_txt = "3" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"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/structure/disposalpipe/segment{ + dir = 4 + }, +/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/security/main) +"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/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel, +/area/security/main) +"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{ + dir = 4; + name = "Security Office APC"; + areastring = "/area/security/main"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"ahO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/fore/secondary) +"ahP" = ( +/turf/open/floor/plasteel/white, +/area/security/brig) +"ahQ" = ( +/obj/structure/closet/secure_closet/warden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahR" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start/warden, +/obj/machinery/button/door{ + id = "Prison Gate"; + name = "Prison Wing Lockdown"; + pixel_x = -27; + pixel_y = 8; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "Secure Gate"; + name = "Cell Shutters"; + pixel_x = -27; + pixel_y = -2 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahS" = ( +/obj/structure/table, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahT" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"ahU" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/brig) +"ahV" = ( +/obj/structure/table, +/obj/item/folder/red, +/obj/item/taperecorder, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"ahW" = ( +/obj/structure/bodycontainer/morgue, +/obj/machinery/camera{ + c_tag = "Brig Infirmary"; + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ahX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/computer/crew{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"ahZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/main) +"aia" = ( +/obj/structure/noticeboard{ + dir = 1; + pixel_y = -27 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"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" = ( +/turf/open/floor/plasteel/whitered/side{ + dir = 10 + }, +/area/security/brig) +"aie" = ( +/obj/structure/table, +/obj/item/folder/red, +/obj/item/pen, +/obj/item/hand_labeler, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"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/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aih" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/brig) +"aii" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/warden) +"aij" = ( +/obj/machinery/light_switch{ + pixel_y = -23 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aik" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"ail" = ( +/obj/machinery/camera{ + c_tag = "Brig Interrogation"; + dir = 8; + network = list("interrogation") + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aim" = ( +/obj/machinery/light_switch{ + pixel_y = -23 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"ain" = ( +/turf/open/floor/plasteel/whitered/side{ + dir = 8 + }, +/area/security/brig) +"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/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"aiq" = ( +/obj/machinery/camera{ + c_tag = "Security Office"; + dir = 1 + }, +/obj/machinery/computer/secure_data{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"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 + }, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"ait" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/machinery/computer/security{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"aiu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"aiv" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"aiw" = ( +/obj/machinery/door/window/westleft{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Brig Infirmary" + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 4 + }, +/area/security/brig) +"aix" = ( +/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/red/side{ + dir = 6 + }, +/area/security/main) +"aiy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/brig) +"aiz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"aiA" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aiB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aiC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aiD" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aiE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aiF" = ( +/obj/structure/bed, +/obj/item/clothing/suit/straight_jacket, +/turf/open/floor/plasteel/whitered/side, +/area/security/brig) +"aiG" = ( +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"aiH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"aiI" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = -32 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/warden) +"aiJ" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/window/brigdoor{ + dir = 1; + name = "Armory Desk"; + req_access_txt = "3" + }, +/obj/machinery/door/window/southleft{ + name = "Reception Desk"; + req_access_txt = "63" + }, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aiK" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/warden) +"aiL" = ( +/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/security/warden) +"aiM" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig Control"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aiN" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/warden) +"aiO" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/bed, +/obj/item/clothing/suit/straight_jacket, +/turf/open/floor/plasteel/whitered/side{ + dir = 6 + }, +/area/security/brig) +"aiP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/security/main) +"aiQ" = ( +/obj/machinery/camera{ + c_tag = "Brig East" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"aiR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"aiS" = ( +/obj/item/stack/rods, +/turf/open/space, +/area/space/nearstation) +"aiT" = ( +/turf/closed/wall, +/area/security/processing) +"aiU" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/processing) +"aiV" = ( +/turf/closed/wall/r_wall, +/area/security/processing) +"aiW" = ( +/obj/machinery/door/airlock/security{ + name = "Interrogation"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"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/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"aja" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"ajc" = ( +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"ajd" = ( +/obj/structure/sign/plaques/golden{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"aje" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"ajf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"ajg" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"ajh" = ( +/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, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aji" = ( +/obj/structure/chair{ + name = "Judge" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/security/courtroom) +"ajj" = ( +/obj/item/radio/intercom{ + broadcasting = 0; + listening = 1; + 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" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 5 + }, +/area/security/courtroom) +"ajl" = ( +/obj/structure/chair{ + name = "Judge" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/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) +"ajq" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/fore) +"ajr" = ( +/obj/machinery/computer/gulag_teleporter_computer, +/turf/open/floor/plasteel, +/area/security/processing) +"ajs" = ( +/obj/machinery/gulag_teleporter, +/turf/open/floor/plasteel, +/area/security/processing) +"ajt" = ( +/obj/structure/sign/warning/securearea{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/item/storage/box/prisoner, +/obj/machinery/camera{ + c_tag = "Labor Shuttle Dock North" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"aju" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/machinery/computer/security/labor, +/turf/open/floor/plasteel, +/area/security/processing) +"ajv" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"ajw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/brig) +"ajx" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"ajy" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Brig APC"; + areastring = "/area/security/brig"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"ajz" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/interrogation{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"ajA" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"ajB" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"ajC" = ( +/obj/item/storage/toolbox/drone, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"ajD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/security/courtroom) +"ajF" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/security/brig) +"ajG" = ( +/obj/machinery/light, +/obj/machinery/door_timer{ + id = "Cell 1"; + name = "Cell 1"; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"ajH" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/security/courtroom) +"ajI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajK" = ( +/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/security/brig) +"ajL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"ajM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ajN" = ( +/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 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajO" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom{ + broadcasting = 0; + dir = 8; + listening = 1; + name = "Station Intercom (Court)" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/security/courtroom) +"ajP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/security/courtroom) +"ajQ" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/security/courtroom) +"ajR" = ( +/obj/structure/table/wood, +/obj/item/gavelblock, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/security/courtroom) +"ajS" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/courtroom) +"ajT" = ( +/obj/structure/chair{ + dir = 8; + name = "Defense" + }, +/turf/open/floor/plasteel/green/side{ + dir = 5 + }, +/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) +"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/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"akb" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"akc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"akd" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/processing) +"ake" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"akf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Labor Shuttle"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Brig West"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/security/brig) +"akh" = ( +/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, +/area/security/brig) +"aki" = ( +/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/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/brig) +"akj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"akk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/security/brig) +"akl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/brig) +"akn" = ( +/obj/structure/table/wood, +/obj/item/folder/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/security/courtroom) +"ako" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door_timer{ + id = "Cell 2"; + name = "Cell 2"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"akp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"akq" = ( +/obj/machinery/camera{ + c_tag = "Brig Central"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door_timer{ + id = "Cell 3"; + name = "Cell 3"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"akr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"aks" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/brig) +"akt" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door_timer{ + id = "Cell 4"; + name = "Cell 4"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"aku" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"akv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/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/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/brig) +"aky" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/security/courtroom) +"akz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"akA" = ( +/obj/structure/chair{ + dir = 8; + name = "Defense" + }, +/turf/open/floor/plasteel/green/side{ + dir = 6 + }, +/area/security/courtroom) +"akB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"akG" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/processing) +"akH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"akI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"akJ" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"akK" = ( +/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/processing) +"akL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/fore) +"akM" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"akN" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"akO" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 1"; + name = "Cell 1" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"akP" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"akQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall, +/area/security/brig) +"akR" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 2"; + name = "Cell 2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"akS" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"akT" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 3"; + name = "Cell 3" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"akU" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"akV" = ( +/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/security/brig) +"akW" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"akX" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"akY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"akZ" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"ala" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 4"; + name = "Cell 4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"alb" = ( +/obj/structure/chair{ + dir = 4; + name = "Prosecution" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/courtroom) +"alc" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/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, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/security/courtroom) +"alf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"alg" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/fore) +"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) +"alk" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aln" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2"; + shuttledocked = 1 + }, +/turf/open/floor/plating, +/area/security/processing) +"alp" = ( +/turf/open/floor/plating, +/area/security/processing) +"alq" = ( +/turf/open/floor/plasteel, +/area/security/processing) +"alr" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/processing) +"als" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/processing) +"alt" = ( +/obj/structure/reagent_dispensers/peppertank, +/turf/closed/wall/r_wall, +/area/ai_monitored/security/armory) +"alu" = ( +/obj/machinery/nuclearbomb/selfdestruct, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/nuke_storage) +"alv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + prison_radio = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"alw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"alx" = ( +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"aly" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + prison_radio = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"alz" = ( +/obj/machinery/button/door{ + id = "briggate"; + name = "Desk Shutters"; + pixel_x = -26; + pixel_y = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/button/flasher{ + id = "brigentry"; + pixel_x = -28; + pixel_y = -8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"alA" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "briggate"; + name = "security shutters" + }, +/obj/machinery/door/window/eastleft{ + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"alB" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"alC" = ( +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/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/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/flasher{ + id = "Cell 4"; + pixel_x = 28 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"alF" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 2 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"alG" = ( +/obj/structure/chair{ + dir = 4; + name = "Prosecution" + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/courtroom) +"alH" = ( +/turf/open/floor/plasteel/neutral/side, +/area/security/courtroom) +"alI" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 + }, +/area/security/courtroom) +"alJ" = ( +/obj/item/beacon, +/turf/open/floor/plasteel/neutral/side, +/area/security/courtroom) +"alK" = ( +/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, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"alL" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/power/apc{ + dir = 8; + name = "Courtroom APC"; + areastring = "/area/security/courtroom"; + 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) +"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"; + track = 0 + }, +/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/effect/decal/cleanable/vomit, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"alW" = ( +/obj/item/cigbutt/cigarbutt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"alX" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ama" = ( +/mob/living/simple_animal/sloth/paperwork, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"amb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"amc" = ( +/obj/machinery/computer/shuttle/labor{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"amd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/processing) +"ame" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"amf" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/flasher{ + id = "Cell 1"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"amg" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 1"; + name = "Cell 1 Locker" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"amh" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/machinery/flasher{ + id = "Cell 2"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"ami" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 2"; + name = "Cell 2 Locker" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"amj" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/machinery/flasher{ + id = "Cell 3"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"amk" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 3"; + name = "Cell 3 Locker" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"aml" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "outerbrig"; + name = "Brig Exterior Doors Control"; + normaldoorcontrol = 1; + pixel_x = -26; + pixel_y = -5; + req_access_txt = "63" + }, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "innerbrig"; + name = "Brig Interior Doors Control"; + normaldoorcontrol = 1; + pixel_x = -26; + pixel_y = 5; + req_access_txt = "63" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"amm" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "briggate"; + name = "security shutters" + }, +/obj/machinery/door/window/eastright{ + name = "Brig Desk"; + req_access_txt = "2" + }, +/obj/item/restraints/handcuffs, +/obj/item/radio/off, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"amn" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"amo" = ( +/obj/machinery/flasher{ + id = "brigentry"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"amp" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 4"; + name = "Cell 4 Locker" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"amq" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = 25; + pixel_y = -2; + prison_radio = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/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/chair{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"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) +"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/structure/chair{ + dir = 1 + }, +/obj/item/toy/sword, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"amH" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 27 + }, +/obj/item/trash/plate, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"amK" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall, +/area/security/processing) +"amL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/processing) +"amM" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Prisoner Processing"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/processing) +"amN" = ( +/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 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amQ" = ( +/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, +/turf/open/floor/plating, +/area/security/brig) +"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/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "briggate"; + name = "security shutters" + }, +/obj/machinery/door/window/southleft{ + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"amU" = ( +/obj/machinery/door/poddoor/preopen{ + id = "briggate"; + name = "security blast door" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"amV" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "briggate"; + name = "security shutters" + }, +/obj/machinery/door/window/southleft{ + base_state = "right"; + icon_state = "right"; + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"amW" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"amX" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/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, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"and" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"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{ + dir = 8; + name = "Port Bow Solar APC"; + areastring = "/area/maintenance/solars/port/fore"; + 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/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"anp" = ( +/obj/item/cigbutt, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ans" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/processing) +"ant" = ( +/obj/machinery/gulag_item_reclaimer{ + pixel_y = 24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"anu" = ( +/obj/machinery/button/door{ + desc = "A remote control switch for the exit."; + id = "laborexit"; + name = "exit button"; + normaldoorcontrol = 1; + pixel_x = 26; + pixel_y = -6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/processing) +"anv" = ( +/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/red/side{ + dir = 5 + }, +/area/security/processing) +"anw" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"anx" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"any" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"anz" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"anA" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"anB" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"anC" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/security/courtroom) +"anD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"anE" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"anF" = ( +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"anG" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/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) +"anN" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + shuttledocked = 1 + }, +/turf/open/floor/plating, +/area/security/processing) +"anO" = ( +/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/space/basic, +/area/space) +"anP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + id_tag = "laborexit"; + name = "Labor Shuttle"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"anQ" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"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/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/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"; + track = 0 + }, +/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) +"aoq" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/processing) +"aor" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/processing) +"aos" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"aot" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/processing) +"aou" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/camera{ + c_tag = "Labor Shuttle Dock South"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/processing) +"aov" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"aow" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"aox" = ( +/obj/machinery/camera{ + c_tag = "Fore Primary Hallway West"; + dir = 1 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/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" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/hallway/primary/fore) +"aoA" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/hallway/primary/fore) +"aoB" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/hallway/primary/fore) +"aoC" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/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 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/hallway/primary/fore) +"aoE" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/hallway/primary/fore) +"aoF" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/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/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/power/apc{ + dir = 2; + name = "Fitness Room APC"; + areastring = "/area/crew_quarters/fitness"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/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/structure/bed, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aoV" = ( +/turf/open/space, +/area/space) +"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) +"aoZ" = ( +/obj/machinery/atmospherics/components/binary/valve/digital{ + name = "Waste Release" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"apa" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"apb" = ( +/obj/structure/plasticflaps, +/turf/open/floor/plating, +/area/security/processing) +"apc" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Security Maintenance"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"apd" = ( +/turf/closed/wall, +/area/security/detectives_office) +"ape" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/abandoned{ + 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, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/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, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/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{ + dir = 1; + name = "Fore Maintenance APC"; + areastring = "/area/maintenance/fore/secondary"; + 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/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"apv" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Fitness 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/fore/secondary) +"apw" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Air In" + }, +/obj/effect/landmark/blobstart, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"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{ + dir = 8; + name = "Starboard Bow Solar APC"; + areastring = "/area/maintenance/solars/starboard/fore"; + 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, +/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/scrubbers/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"apG" = ( +/obj/machinery/portable_atmospherics/canister/water_vapor, +/turf/open/floor/plasteel, +/area/janitor) +"apI" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/engine/atmos) +"apJ" = ( +/turf/closed/wall, +/area/construction/mining/aux_base) +"apL" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/port/fore) +"apM" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/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) +"apR" = ( +/obj/item/paper/fluff/jobs/security/beepsky_mom, +/turf/open/floor/plating, +/area/security/processing) +"apS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"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/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/crew_quarters/fitness) +"apY" = ( +/obj/structure/closet/secure_closet/personal, +/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/table, +/obj/machinery/light/small{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/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{ + dir = 2; + name = "Dormitory APC"; + areastring = "/area/crew_quarters/dorms"; + 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/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"aqm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/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/item/bedsheet, +/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 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"aqo" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"aqs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"aqu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/effect/spawner/structure/window/reinforced, +/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/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aqC" = ( +/obj/machinery/computer/slot_machine{ + balance = 15; + money = 500 + }, +/obj/item/coin/iron, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aqD" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/item/coin/gold, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aqE" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aqG" = ( +/obj/docking_port/stationary/random{ + dir = 4; + id = "pod_lavaland3"; + name = "lavaland" + }, +/turf/open/space, +/area/space/nearstation) +"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/floorgrime, +/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) +"aqO" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aqP" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Port Bow Maintenance APC"; + areastring = "/area/maintenance/port/fore"; + 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/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/security/processing) +"aqT" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Labor Shuttle Dock APC"; + areastring = "/area/security/processing"; + pixel_x = -24 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/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/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"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) +"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/closet/secure_closet/personal/cabinet, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"arj" = ( +/turf/closed/wall, +/area/crew_quarters/fitness) +"ark" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"arl" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/crew_quarters/fitness) +"arm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"arn" = ( +/obj/structure/closet/athletic_mixed, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/fitness) +"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-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ars" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Starboard Bow Maintenance APC"; + areastring = "/area/maintenance/starboard/fore"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"art" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Fore Starboard Solar Access" + }, +/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/structure/closet, +/obj/item/coin/iron, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"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, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"arB" = ( +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) +"arE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/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/machinery/monkey_recycler, +/obj/item/reagent_containers/food/snacks/monkeycube, +/obj/item/reagent_containers/food/snacks/monkeycube, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"arP" = ( +/turf/closed/wall, +/area/maintenance/fore) +"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/table/wood, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"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 = 8; + 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{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"asb" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/fitness) +"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, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/crew_quarters/dorms) +"asg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/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/structure/dresser, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"asl" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"asm" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/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/structure/table/wood, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"asq" = ( +/obj/machinery/camera{ + c_tag = "Fitness Room" + }, +/obj/structure/closet/masks, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/fitness) +"asr" = ( +/obj/structure/closet/boxinggloves, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/clothing/shoes/jackboots, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/fitness) +"ass" = ( +/obj/structure/closet/lasertag/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/crew_quarters/fitness) +"ast" = ( +/obj/structure/closet/lasertag/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/fitness) +"asu" = ( +/obj/structure/bed, +/obj/item/bedsheet/red, +/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, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"asv" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"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" = ( +/turf/open/floor/plasteel/airless, +/area/space/nearstation) +"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, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/construction/mining/aux_base) +"asI" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/construction/mining/aux_base) +"asJ" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/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) +"asL" = ( +/obj/structure/bed, +/obj/item/bedsheet/red, +/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, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"asM" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/fitness) +"asN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"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/secure_closet/medical1, +/turf/open/floor/plating, +/area/maintenance/fore) +"asT" = ( +/obj/structure/closet/secure_closet/chemical, +/turf/open/floor/plating, +/area/maintenance/fore) +"asU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/vacantoffice/b) +"asV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"asW" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/storage/briefcase, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"asX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"asY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"asZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/vr_sleeper, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/crew_quarters/fitness) +"ata" = ( +/turf/open/floor/wood, +/area/lawoffice) +"atb" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/stack/rods/fifty, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/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/structure/chair/stool{ + pixel_y = 8 + }, +/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 = "Dorm 4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/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 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/dorms) +"atj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/dorms) +"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/machinery/light_switch{ + pixel_y = -23 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"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" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"att" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"atu" = ( +/obj/machinery/camera{ + c_tag = "Vacant Office B"; + dir = 1 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel, +/area/security/vacantoffice/b) +"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) +"atA" = ( +/obj/structure/table, +/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/floorgrime, +/area/maintenance/department/electrical) +"atD" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/floorgrime, +/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" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/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" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm5"; + name = "Cabin 1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"atR" = ( +/obj/effect/landmark/carpspawn, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"atS" = ( +/turf/closed/wall, +/area/space/nearstation) +"atT" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"atU" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"atV" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/fitness) +"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/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aua" = ( +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/crew_quarters/fitness) +"aub" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/side, +/area/construction/mining/aux_base) +"auc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/construction/mining/aux_base) +"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/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"auk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/dorms) +"aul" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/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) +"aup" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm6"; + name = "Cabin 2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/dorms) +"auq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/vacantoffice/b) +"aur" = ( +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Fitness Ring" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness) +"aus" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aut" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness) +"auu" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"auv" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness) +"auw" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/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 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"aux" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/dorms) +"auy" = ( +/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, +/area/crew_quarters/fitness) +"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/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"auB" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"auC" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"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/floorgrime, +/area/maintenance/department/electrical) +"auK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/department/electrical) +"auL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/department/electrical) +"auM" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/department/electrical) +"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/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/dorms) +"auS" = ( +/obj/machinery/requests_console{ + department = "Crew Quarters"; + pixel_y = 30 + }, +/obj/machinery/camera{ + c_tag = "Dormitory North" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/dorms) +"auT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"auU" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/dorms) +"auV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/port/fore) +"auW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/dorms) +"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" = ( +/turf/open/floor/plasteel/airless{ + icon_state = "damaged3" + }, +/area/space/nearstation) +"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/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ave" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore) +"avf" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Chemical Storage"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"avg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/dorms) +"avh" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/power/apc{ + dir = 8; + name = "Vacant Office B APC"; + areastring = "/area/security/vacantoffice/b"; + pixel_x = -24 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"avi" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Law Office APC"; + areastring = "/area/lawoffice"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/lawoffice) +"avj" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"avk" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"avl" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/dorms) +"avm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/dorms) +"avn" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/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"; + dir = 2 + }, +/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, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"avu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/crew_quarters/dorms) +"avv" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"avw" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/fitness) +"avx" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"avy" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness) +"avz" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/fitness) +"avA" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness) +"avB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"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{ + dir = 1; + name = "Electrical Maintenance APC"; + areastring = "/area/maintenance/department/electrical"; + 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{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plasteel/floorgrime, +/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 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/construction/mining/aux_base) +"avR" = ( +/obj/structure/table/wood, +/obj/item/storage/firstaid/regular, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"avS" = ( +/obj/item/wrench, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"avT" = ( +/obj/docking_port/stationary{ + dheight = 1; + dir = 8; + dwidth = 12; + height = 17; + id = "syndicate_ne"; + name = "northeast of station"; + width = 23 + }, +/turf/open/space, +/area/space/nearstation) +"avU" = ( +/obj/item/paper/crumpled, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged2" + }, +/area/space/nearstation) +"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/power/apc{ + dir = 1; + name = "Fore Maintenance APC"; + areastring = "/area/maintenance/fore"; + 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/fore) +"awe" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"awf" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"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 = "Dorm 3" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"awp" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/storage/pill_bottle/dice, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"awq" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"awr" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aws" = ( +/obj/structure/table/wood, +/obj/item/coin/silver, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"awt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"awu" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/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, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aww" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"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/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"awz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Fitness" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"awA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"awB" = ( +/obj/effect/landmark/start/assistant, +/obj/machinery/vr_sleeper, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/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/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/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/pen, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"awL" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"awM" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"awN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"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/floorgrime, +/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) +"awY" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry) +"awZ" = ( +/turf/open/floor/plasteel/arrival{ + 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 + }, +/turf/open/floor/plasteel/arrival{ + dir = 5 + }, +/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 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel/arrival{ + 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/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"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, +/turf/open/floor/plating, +/area/maintenance/fore) +"axr" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"axs" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"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/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/fore) +"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) +"axx" = ( +/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, +/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 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/blue/corner, +/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 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry) +"axH" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/hallway/secondary/entry) +"axI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/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, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"axM" = ( +/obj/structure/table/wood, +/obj/item/paicard, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"axN" = ( +/obj/structure/table/wood, +/obj/item/storage/crayons, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"axO" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"axP" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck{ + pixel_x = 2 + }, +/obj/item/clothing/mask/balaclava{ + pixel_x = -8; + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"axQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"axR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Fitness" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"axS" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness) +"axT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"axU" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness) +"axV" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"axW" = ( +/obj/machinery/door/window/eastright{ + base_state = "left"; + icon_state = "left"; + name = "Fitness Ring" + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness) +"axX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"axY" = ( +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/crew_quarters/fitness) +"axZ" = ( +/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, +/area/crew_quarters/fitness) +"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{ + dir = 2 + }, +/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, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/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 = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/fore) +"ayB" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/fore) +"ayC" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/fore) +"ayD" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/fore) +"ayE" = ( +/turf/closed/wall/r_wall, +/area/maintenance/fore) +"ayF" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/fore) +"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{ + dir = 2; + pixel_y = 24 + }, +/obj/item/clothing/head/welding, +/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, +/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{ + dir = 1; + name = "EVA Storage APC"; + areastring = "/area/ai_monitored/storage/eva"; + 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/item/bedsheet, +/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 + }, +/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 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"ayZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/fore) +"aza" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/dorms) +"azb" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 2 + }, +/area/crew_quarters/dorms) +"azc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/dorms) +"azd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/crew_quarters/dorms) +"aze" = ( +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/dorms) +"azf" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"azg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"azh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/vr_sleeper, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/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/disposalpipe/segment{ + dir = 5 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 + }, +/area/crew_quarters/fitness) +"azk" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"azl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/crew_quarters/fitness) +"azm" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"azn" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"azo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"azp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/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" + }, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/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/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/space, +/area/space/nearstation) +"azI" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/space, +/area/space/nearstation) +"azJ" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/obj/effect/turf_decal/bot_white/right, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/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, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/gateway) +"azM" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/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) +"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/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 2 + }, +/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/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/dorms) +"azW" = ( +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"azX" = ( +/obj/machinery/door/airlock{ + name = "Unisex Showers" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"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" = ( +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"aAa" = ( +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/fore) +"aAb" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm2"; + name = "Dorm 2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/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/light_switch{ + pixel_y = -25 + }, +/turf/open/floor/plasteel/neutral/side, +/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/structure/closet/wardrobe/pjs, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/dorms) +"aAg" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/dorms) +"aAh" = ( +/turf/closed/wall, +/area/crew_quarters/toilet) +"aAi" = ( +/obj/structure/closet/wardrobe/pjs, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/crew_quarters/dorms) +"aAj" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/power/apc{ + dir = 2; + name = "Security Checkpoint APC"; + areastring = "/area/security/checkpoint/auxiliary"; + 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/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/fitness) +"aAl" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 + }, +/area/crew_quarters/fitness) +"aAm" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/fitness) +"aAn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/fitness) +"aAo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/crew_quarters/fitness) +"aAp" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/fitness) +"aAq" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aAr" = ( +/obj/structure/closet, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aAs" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/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/machinery/door/poddoor/preopen{ + id = "maint2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"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{ + dir = 4; + name = "Garden APC"; + areastring = "/area/hydroponics/garden"; + 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{ + charge = 0 + }, +/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{ + charge = 0 + }, +/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, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/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{ + dir = 2; + name = "Primary Tool Storage APC"; + areastring = "/area/storage/primary"; + 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) +"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, +/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/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/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/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"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, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"aBe" = ( +/turf/open/floor/plasteel/dark, +/area/gateway) +"aBf" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/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{ + dir = 8; + name = "Gateway APC"; + areastring = "/area/gateway"; + 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, +/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/effect/landmark/start/assistant, +/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 + }, +/turf/open/floor/plasteel/blue/corner, +/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/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/crew_quarters/toilet) +"aBy" = ( +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aBz" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aBA" = ( +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"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/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aBE" = ( +/obj/item/clothing/under/rank/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" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"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/light_switch{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/circuit, +/area/ai_monitored/nuke_storage) +"aBT" = ( +/obj/machinery/computer/bank_machine, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/nuke_storage) +"aBU" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Vault APC"; + areastring = "/area/ai_monitored/nuke_storage"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/circuit, +/area/ai_monitored/nuke_storage) +"aBV" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/circuit, +/area/ai_monitored/nuke_storage) +"aBW" = ( +/obj/structure/filingcabinet, +/obj/item/folder/documents, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/nuke_storage) +"aBX" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/obj/effect/turf_decal/bot_white/left, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/gateway) +"aBY" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/obj/effect/turf_decal/bot_white/right, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/gateway) +"aBZ" = ( +/obj/machinery/gateway, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/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/structure/bed, +/obj/item/bedsheet, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/button/door{ + id = "Dorm1"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"aCe" = ( +/obj/effect/landmark/xeno_spawn, +/obj/item/bikehorn/rubberducky, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aCf" = ( +/obj/machinery/camera{ + c_tag = "Theatre Storage" + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/theatre) +"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/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aCn" = ( +/obj/structure/urinal{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aCo" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aCp" = ( +/obj/machinery/camera{ + c_tag = "Arrivals North"; + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/hallway/secondary/entry) +"aCq" = ( +/obj/structure/table/wood, +/obj/machinery/requests_console{ + department = "Theatre"; + departmentType = 0; + name = "theatre RC"; + pixel_x = -32 + }, +/obj/item/reagent_containers/food/snacks/baguette, +/obj/item/toy/dummy, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/theatre) +"aCr" = ( +/turf/closed/wall, +/area/crew_quarters/theatre) +"aCs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/vending/wardrobe/sec_wardrobe, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/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/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"aCv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"aCw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"aCx" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aCy" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"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{ + icon_state = "window"; + dir = 4 + }, +/obj/structure/window, +/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, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/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, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/auxiliary) +"aCZ" = ( +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/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{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aDc" = ( +/obj/machinery/computer/card, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/auxiliary) +"aDg" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel, +/area/hydroponics/garden) +"aDh" = ( +/obj/machinery/vending/assist, +/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"; + departmentType = 0; + 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{ + broadcasting = 0; + 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/simple/scrubbers/hidden{ + dir = 9 + }, +/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, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/nuke_storage) +"aDt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/circuit, +/area/ai_monitored/nuke_storage) +"aDv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white/left, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/ai_monitored/nuke_storage) +"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{ + dir = 2 + }, +/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{ + dir = 2 + }, +/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/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/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/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{ + id_tag = "Dorm1"; + name = "Dorm 1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"aDL" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDN" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDQ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDR" = ( +/obj/structure/table/wood, +/obj/structure/mirror{ + pixel_x = -28 + }, +/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) +"aDS" = ( +/obj/machinery/door/airlock{ + name = "Unisex Showers" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDT" = ( +/obj/machinery/light/small, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDV" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aDW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aDX" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aDY" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/mime, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/theatre) +"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) +"aEb" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Theatre Maintenance"; + req_access_txt = "46" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aEc" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/crew_quarters/theatre) +"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{ + dir = 2; + name = "Chapel APC"; + areastring = "/area/chapel/main"; + 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{ + dir = 4; + name = "Entry Hall APC"; + areastring = "/area/hallway/secondary/entry"; + pixel_x = 24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/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, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/hydroponics/garden) +"aEG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/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" = ( +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/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, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/nuke_storage) +"aEO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit, +/area/ai_monitored/nuke_storage) +"aEP" = ( +/obj/effect/turf_decal/bot_white/left, +/obj/structure/closet/crate/silvercrate, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/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, +/turf/open/floor/plasteel/barber, +/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/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/dorms) +"aFe" = ( +/obj/machinery/camera{ + c_tag = "Dormitory South"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/dorms) +"aFf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aFg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/toilet) +"aFh" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aFi" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Dormitory Bathrooms APC"; + areastring = "/area/crew_quarters/toilet"; + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aFj" = ( +/turf/open/floor/plasteel/redblue/redside, +/area/crew_quarters/theatre) +"aFk" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/redblue/redside, +/area/crew_quarters/theatre) +"aFl" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/dresser, +/turf/open/floor/plasteel/redblue/redside, +/area/crew_quarters/theatre) +"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/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aFq" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"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{ + dir = 2; + name = "Chapel Office APC"; + areastring = "/area/chapel/office"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/chapel/office) +"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" = ( +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/hallway/secondary/entry) +"aFH" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side, +/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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/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 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/auxiliary) +"aFL" = ( +/obj/item/radio/off, +/obj/item/crowbar, +/obj/item/assembly/flash/handheld, +/obj/structure/table, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/auxiliary) +"aFM" = ( +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/red/side, +/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, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/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) +"aFS" = ( +/obj/effect/landmark/start/assistant, +/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/effect/landmark/start/assistant, +/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{ + freerange = 0; + frequency = 1459; + 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, +/turf/open/floor/plasteel/vault/corner, +/area/ai_monitored/nuke_storage) +"aGb" = ( +/obj/effect/turf_decal/bot_white/right, +/obj/machinery/ore_silo, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/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, +/turf/open/floor/plasteel/vault/corner{ + dir = 8 + }, +/area/ai_monitored/nuke_storage) +"aGd" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/vault/side, +/area/ai_monitored/nuke_storage) +"aGe" = ( +/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/gun/ballistic/revolver/russian, +/obj/item/ammo_box/a357, +/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, +/obj/effect/turf_decal/bot_white/left, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/ai_monitored/nuke_storage) +"aGf" = ( +/obj/machinery/firealarm{ + dir = 4; + 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/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aGl" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aGm" = ( +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aGn" = ( +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel/freezer, +/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) +"aGp" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"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 + }, +/turf/open/floor/plasteel/redblue, +/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, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"aGu" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/blue/corner, +/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/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/secure_closet/freezer/cream_pie, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"aGx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/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/structure/cable{ + icon_state = "2-4" + }, +/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 + }, +/turf/open/floor/plasteel/redblue, +/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) +"aGP" = ( +/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/starboard/fore) +"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) +"aGX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"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, +/turf/open/floor/wood, +/area/library) +"aHc" = ( +/obj/machinery/vending/games, +/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"; + dir = 2 + }, +/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) +"aHp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aHq" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/chapel/main) +"aHu" = ( +/obj/machinery/status_display{ + 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/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/event_spawn, +/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, +/turf/open/floor/plasteel/green/side{ + dir = 5 + }, +/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 + }, +/turf/open/floor/plasteel/green/side{ + dir = 9 + }, +/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 + }, +/obj/effect/landmark/start/assistant, +/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, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"aHG" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/vault{ + req_access_txt = "53" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/nuke_storage) +"aHH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Dormitory" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/dorms) +"aHI" = ( +/turf/open/floor/plasteel/redblue, +/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, +/turf/open/floor/plasteel/redblue, +/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" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"aHR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 4 + }, +/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, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/dorms) +"aHU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aHV" = ( +/obj/machinery/door/airlock{ + name = "Unit 1" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aHW" = ( +/obj/machinery/door/airlock{ + name = "Unit 2" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aHX" = ( +/obj/machinery/door/airlock{ + name = "Unit B" + }, +/turf/open/floor/plasteel/freezer, +/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/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/structure/closet/crate/wooden/toy, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"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/power/apc{ + dir = 8; + name = "Theatre APC"; + areastring = "/area/crew_quarters/theatre"; + pixel_x = -25 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aIc" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Bar APC"; + areastring = "/area/crew_quarters/bar"; + 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{ + dir = 2 + }, +/turf/open/floor/plasteel{ + dir = 2 + }, +/area/crew_quarters/bar) +"aIh" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Kitchen APC"; + areastring = "/area/crew_quarters/kitchen"; + 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{ + dir = 2; + name = "Hydroponics APC"; + areastring = "/area/hydroponics"; + 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/structure/filingcabinet, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/library) +"aIs" = ( +/obj/structure/chair/office/dark, +/obj/machinery/camera{ + c_tag = "Library North"; + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/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/chair/office/dark, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/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, +/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) +"aIA" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/storage/crayons, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aIB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/bodycontainer/crematorium{ + id = "crematoriumChapel" + }, +/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) +"aIF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/warden) +"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" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/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"; + dir = 2 + }, +/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 = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/hydroponics/garden) +"aIT" = ( +/obj/item/storage/bag/plants/portaseeder, +/obj/structure/table/glass, +/obj/item/plant_analyzer, +/obj/item/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/obj/machinery/light_switch{ + pixel_x = -6; + pixel_y = -25 + }, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/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) +"aJd" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/port) +"aJe" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/hallway/primary/port) +"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, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/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/airlock{ + name = "Theatre Backstage"; + req_access_txt = "46" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/theatre) +"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/structure/sink/kitchen{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/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"; + dir = 2 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/central) +"aJp" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/hallway/primary/central) +"aJq" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJr" = ( +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aJs" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/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 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"aJu" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 5 + }, +/area/hallway/primary/central) +"aJv" = ( +/obj/machinery/vending/cola/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, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/hallway/primary/central) +"aJz" = ( +/obj/machinery/camera{ + c_tag = "Dormitory Toilets"; + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/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) +"aJE" = ( +/obj/item/reagent_containers/food/drinks/shaker, +/obj/item/gun/ballistic/revolver/doublebarrel, +/obj/structure/table/wood, +/obj/item/stack/spacecash/c10, +/obj/item/stack/spacecash/c100, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"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{ + base_state = "left"; + dir = 2; + icon_state = "left"; + 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/manifold/scrubbers/hidden{ + dir = 8 + }, +/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{ + dir = 2 + }, +/turf/open/floor/plasteel{ + dir = 2 + }, +/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{ + dir = 2 + }, +/turf/open/floor/plasteel{ + dir = 2 + }, +/area/hydroponics) +"aJM" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp{ + pixel_y = 10 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"aJN" = ( +/obj/structure/table, +/obj/item/book/manual/hydroponics_pod_people, +/obj/item/paper/guides/jobs/hydroponics, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aJO" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aJP" = ( +/obj/structure/table/wood, +/obj/item/folder/yellow, +/obj/item/pen, +/turf/open/floor/wood, +/area/library) +"aJQ" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"aJR" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/wood, +/area/library) +"aJS" = ( +/obj/structure/table/wood, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/library) +"aJT" = ( +/obj/structure/table/wood, +/obj/item/nullrod, +/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, +/turf/open/floor/plasteel/neutral/side, +/area/hallway/secondary/entry) +"aJY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side, +/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) +"aKb" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/hallway/primary/port) +"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{ + dir = 8; + name = "Auxillary Base Construction APC"; + areastring = "/area/construction/mining/aux_base"; + 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, +/turf/open/floor/plasteel/neutral/corner{ + dir = 2 + }, +/area/hallway/secondary/entry) +"aKk" = ( +/turf/open/floor/plasteel/neutral/side, +/area/hallway/secondary/entry) +"aKl" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/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, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/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{ + c_tag = "Theatre Stage"; + dir = 2 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aKr" = ( +/obj/machinery/airalarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aKs" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/storage/primary) +"aKt" = ( +/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/hallway/primary/port) +"aKu" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/port) +"aKv" = ( +/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/hallway/primary/port) +"aKw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/hallway/primary/port) +"aKx" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/port) +"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/hydrofloor, +/area/hydroponics) +"aKE" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/hallway/primary/central) +"aKF" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 4 + }, +/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/hydrofloor, +/area/hydroponics) +"aKI" = ( +/obj/structure/closet/secure_closet/hydroponics, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aKJ" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aKK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/secure_closet/hydroponics, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"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/hydrofloor, +/area/hydroponics) +"aKM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aKN" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aKO" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aKP" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bar, +/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" + }, +/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/hydrofloor, +/area/hydroponics) +"aKV" = ( +/obj/machinery/door/window/southleft{ + base_state = "left"; + dir = 2; + icon_state = "left"; + 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/hydrofloor, +/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/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/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/hydrofloor, +/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) +"aLh" = ( +/obj/machinery/light{ + dir = 4 + }, +/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/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/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 = 8; + 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" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/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{ + name = "Port Hall APC"; + areastring = "/area/hallway/primary/port"; + dir = 1; + 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) +"aLJ" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLK" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLL" = ( +/obj/machinery/camera{ + c_tag = "Port Hallway 2"; + dir = 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 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/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"; + dir = 2 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aLR" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aLS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"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{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aLW" = ( +/obj/machinery/camera{ + c_tag = "Central Hallway North-West"; + dir = 2 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aLX" = ( +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/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{ + dir = 2; + 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) +"aMp" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aMq" = ( +/obj/structure/piano{ + icon_state = "piano" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"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/hydrofloor, +/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/hydrofloor, +/area/hydroponics) +"aMu" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aMv" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aMw" = ( +/obj/machinery/computer/slot_machine, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aMx" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aMy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aMz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/hydrofloor, +/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/hydrofloor, +/area/hydroponics) +"aMB" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aMC" = ( +/obj/machinery/vending/cola/random, +/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/hydrofloor, +/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/hydrofloor, +/area/hydroponics) +"aMH" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/wood, +/area/library) +"aMI" = ( +/obj/machinery/light/small, +/obj/machinery/vending/wardrobe/hydro_wardrobe, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"aMJ" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/library) +"aMK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"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"; + dir = 2 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aMN" = ( +/obj/machinery/chem_master/condimaster, +/turf/open/floor/plasteel/hydrofloor, +/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) +"aMW" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"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) +"aNt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aNu" = ( +/obj/structure/closet/secure_closet/bar{ + req_access_txt = "25" + }, +/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) +"aND" = ( +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/cable_coil, +/obj/item/flashlight/lamp, +/obj/item/flashlight/lamp/green, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"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/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aNG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aNH" = ( +/obj/machinery/door/window{ + dir = 4; + name = "Theatre Stage" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aNI" = ( +/obj/machinery/computer/slot_machine, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aNJ" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/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/hydrofloor, +/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, +/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, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/hallway/secondary/exit) +"aOa" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/hallway/secondary/exit) +"aOb" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/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" = ( +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"aOF" = ( +/obj/machinery/light, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"aOG" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/machinery/door/firedoor, +/obj/machinery/light, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/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/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aOK" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/bar) +"aOL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bar, +/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/plasteel{ + icon_state = "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"; + dir = 2 + }, +/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/bookcase{ + name = "Forbidden Knowledge" + }, +/turf/open/floor/engine/cult, +/area/library) +"aPh" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen/invisible, +/turf/open/floor/engine/cult, +/area/library) +"aPi" = ( +/obj/structure/table/wood, +/obj/item/taperecorder, +/obj/item/camera, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/engine/cult, +/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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/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 + }, +/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{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aPw" = ( +/obj/machinery/disposal/bin, +/obj/structure/sign/warning/securearea{ + 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"; + name = "Mr. Deempisi portrait"; + 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 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"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, +/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, +/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, +/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/chair/stool, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aPZ" = ( +/obj/structure/table, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -31 + }, +/obj/item/clothing/head/hardhat/cakehat, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aQa" = ( +/obj/structure/table, +/obj/item/kitchen/fork, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aQb" = ( +/obj/structure/window/reinforced, +/obj/structure/table/wood, +/obj/item/instrument/violin, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aQc" = ( +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aQd" = ( +/obj/structure/chair, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aQe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aQf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/green/side{ + dir = 9 + }, +/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, +/turf/open/floor/plasteel/green/side{ + dir = 5 + }, +/area/hydroponics) +"aQi" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/bar, +/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 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aQm" = ( +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/hydroponics) +"aQn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aQo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/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/machinery/vending/wardrobe/curator_wardrobe, +/turf/open/floor/engine/cult, +/area/library) +"aQs" = ( +/obj/structure/destructible/cult/tome, +/obj/item/clothing/under/suit_jacket/red, +/obj/item/book/codex_gigas, +/turf/open/floor/engine/cult, +/area/library) +"aQt" = ( +/obj/effect/landmark/blobstart, +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/engine/cult, +/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" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/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, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/secondary/entry) +"aQJ" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aQK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/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, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aQP" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aQQ" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aQR" = ( +/obj/machinery/vending/cola/random, +/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, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aQU" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aQV" = ( +/obj/machinery/vending/clothing, +/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{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aQY" = ( +/obj/structure/table, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/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 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/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, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aRh" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aRi" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/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" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/bridge) +"aRl" = ( +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel/yellow/side, +/area/bridge) +"aRm" = ( +/obj/machinery/computer/communications, +/turf/open/floor/plasteel/blue/side, +/area/bridge) +"aRn" = ( +/obj/machinery/computer/shuttle/labor, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/bridge) +"aRo" = ( +/obj/machinery/modular_computer/console/preset/command, +/turf/open/floor/plasteel/green/side{ + dir = 10 + }, +/area/bridge) +"aRp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/computer/shuttle/mining, +/turf/open/floor/plasteel/blue/side{ + dir = 6 + }, +/area/bridge) +"aRq" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/green/side{ + dir = 6 + }, +/area/bridge) +"aRr" = ( +/obj/machinery/computer/crew, +/turf/open/floor/plasteel/green/side{ + dir = 2 + }, +/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/chair/stool, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aRv" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aRw" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aRx" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/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 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aRA" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aRB" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/machinery/camera{ + c_tag = "Kitchen"; + dir = 2 + }, +/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, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/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, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/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{ + dir = 4; + name = "Library APC"; + areastring = "/area/library"; + 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 = 8; + 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{ + dir = 1; + name = "Auxiliary Tool Storage APC"; + areastring = "/area/storage/tools"; + pixel_y = 24 + }, +/obj/machinery/firealarm{ + dir = 8; + 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, +/turf/open/floor/plasteel/arrival{ + dir = 2 + }, +/area/hallway/secondary/entry) +"aRY" = ( +/turf/open/floor/plasteel/arrival{ + dir = 2 + }, +/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"; + dir = 2 + }, +/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 = 2; + 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 + }, +/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, +/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) +"aSo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aSp" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aSq" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/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" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/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" + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/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, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/bridge) +"aSA" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 1 + }, +/area/bridge) +"aSB" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 4 + }, +/area/bridge) +"aSC" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 4 + }, +/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" = ( +/mob/living/carbon/monkey/punpun, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aSG" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aSH" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aSI" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Kitchen"; + req_access_txt = "28" + }, +/turf/open/floor/plasteel/bar, +/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 + }, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"aSR" = ( +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aSS" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel, +/area/hydroponics) +"aST" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel, +/area/hydroponics) +"aSU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/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/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aSY" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/head/that{ + throwforce = 1 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aSZ" = ( +/obj/effect/landmark/start/bartender, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aTb" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/library) +"aTc" = ( +/obj/machinery/door/window/northright{ + base_state = "right"; + dir = 8; + icon_state = "right"; + 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" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"aTl" = ( +/obj/machinery/vending/cola/random, +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 + }, +/turf/open/floor/plasteel/escape{ + dir = 9 + }, +/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{ + 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 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aTx" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/landmark/start/assistant, +/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/structure/table, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aTA" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/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/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aTD" = ( +/obj/structure/closet/secure_closet/personal, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "Locker Room East"; + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/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/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/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, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/bridge) +"aTS" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/bridge) +"aTT" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/red/side, +/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" = ( +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/bridge) +"aTZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/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, +/turf/open/floor/plasteel/brown{ + dir = 10 + }, +/area/bridge) +"aUc" = ( +/obj/structure/table/reinforced, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/bridge) +"aUd" = ( +/obj/machinery/computer/security/mining, +/turf/open/floor/plasteel/brown{ + dir = 6 + }, +/area/bridge) +"aUe" = ( +/obj/machinery/computer/cargo/request, +/turf/open/floor/plasteel/brown{ + dir = 2 + }, +/area/bridge) +"aUf" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/camera{ + c_tag = "Bar West"; + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aUg" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/bar, +/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" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/hydroponics) +"aUj" = ( +/obj/machinery/vending/hydronutrients, +/turf/open/floor/plasteel, +/area/hydroponics) +"aUk" = ( +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/turf/open/floor/plasteel, +/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/structure/table, +/obj/item/clothing/head/soft/grey{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aUq" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aUr" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aUs" = ( +/obj/structure/table, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/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/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aUv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/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) +"aUC" = ( +/obj/structure/chair/comfy/black, +/obj/effect/landmark/start/assistant, +/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, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/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) +"aUP" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/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 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aUV" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/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/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aUZ" = ( +/obj/structure/closet/secure_closet/personal, +/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, +/turf/open/floor/plasteel/blue/side{ + dir = 5 + }, +/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 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/bridge) +"aVf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/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{ + dir = 8; + name = "Fore Primary Hallway APC"; + areastring = "/area/hallway/primary/fore"; + 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, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/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 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 1 + }, +/area/bridge) +"aVr" = ( +/obj/machinery/camera{ + c_tag = "Bridge East"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 4 + }, +/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, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/hallway/primary/central) +"aVv" = ( +/obj/machinery/camera{ + c_tag = "Bridge East Entrance"; + dir = 2 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/central) +"aVw" = ( +/obj/structure/table/wood/poker, +/obj/item/clothing/mask/cigarette/cigar, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aVx" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aVy" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/bar, +/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, +/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 = -3 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = 3 + }, +/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 = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aVI" = ( +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"aVJ" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"aVK" = ( +/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) +"aVP" = ( +/obj/structure/table/wood, +/obj/item/paper, +/turf/open/floor/wood, +/area/library) +"aVQ" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/wood, +/area/library) +"aVR" = ( +/obj/structure/table/wood, +/obj/item/pen/red, +/obj/item/pen/blue{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/library) +"aVS" = ( +/obj/structure/table/wood, +/obj/item/camera_film, +/obj/item/camera_film, +/turf/open/floor/wood, +/area/library) +"aVT" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/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 + }, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/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, +/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{ + icon_state = "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{ + icon_state = "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, +/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) +"aWw" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Art Storage"; + areastring = "/area/storage/art"; + 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) +"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{ + dir = 1; + name = "Port Emergency Storage APC"; + areastring = "/area/storage/emergency/port"; + 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/structure/reagent_dispensers/fueltank, +/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, +/turf/open/floor/plasteel/blue/side{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel/blue/side, +/area/bridge) +"aWP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner, +/area/bridge) +"aWQ" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side, +/area/bridge) +"aWR" = ( +/obj/structure/fireaxecabinet{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side, +/area/bridge) +"aWS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side, +/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 + }, +/turf/open/floor/plasteel/blue/side, +/area/bridge) +"aWU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side, +/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 + }, +/turf/open/floor/plasteel/blue/side, +/area/bridge) +"aWW" = ( +/obj/machinery/power/apc/highcap/five_k{ + dir = 2; + name = "Bridge APC"; + areastring = "/area/bridge"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/blue/side, +/area/bridge) +"aWX" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side, +/area/bridge) +"aWY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/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/machinery/light{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -31 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aXj" = ( +/obj/structure/table/reinforced, +/obj/item/lighter, +/turf/open/floor/plasteel/bar, +/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/glass/rag, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"aXl" = ( +/obj/machinery/door/window/southright{ + name = "Bar Door"; + req_one_access_txt = "25;28" + }, +/turf/open/floor/plasteel/bar, +/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" = ( +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aXs" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aXt" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 2 + }, +/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/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aXw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aXx" = ( +/obj/structure/closet/secure_closet/personal, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/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) +"aXA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"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 + }, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/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/effect/landmark/event_spawn, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/fitness) +"aXG" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/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) +"aXO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"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{ + 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) +"aYa" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Port Maintenance APC"; + areastring = "/area/maintenance/port"; + 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) +"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/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/warehouse) +"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) +"aYh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"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/table/wood, +/obj/item/taperecorder, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/button/door{ + id = "kanyewest"; + name = "Privacy Shutters"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aYk" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/blue/side, +/area/hallway/primary/central) +"aYl" = ( +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"aYm" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/blue/side{ + dir = 6 + }, +/area/hallway/primary/central) +"aYn" = ( +/obj/machinery/camera{ + c_tag = "Bridge West Entrance"; + dir = 1 + }, +/turf/open/floor/plasteel/blue/side, +/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, +/turf/open/floor/plasteel/blue/side, +/area/bridge) +"aYr" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/blue/side, +/area/bridge) +"aYs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/side, +/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, +/turf/open/floor/plasteel/blue/side{ + dir = 6 + }, +/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/ai_status_display, +/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, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/bridge) +"aYD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/side, +/area/bridge) +"aYE" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/hallway/primary/central) +"aYF" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Central Hall APC"; + areastring = "/area/hallway/primary/central"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/blue/side, +/area/hallway/primary/central) +"aYG" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"aYH" = ( +/obj/structure/table, +/obj/item/razor, +/obj/structure/window{ + icon_state = "window"; + dir = 1 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"aYI" = ( +/obj/structure/chair/stool/bar, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"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" + }, +/turf/open/floor/plasteel/bar, +/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) +"aYP" = ( +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plasteel, +/area/hydroponics) +"aYQ" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/hydroponics) +"aYR" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/botanist, +/turf/open/floor/plasteel, +/area/hydroponics) +"aYS" = ( +/obj/structure/closet, +/obj/item/clothing/under/suit_jacket/female{ + pixel_x = 3; + pixel_y = 1 + }, +/obj/item/clothing/under/suit_jacket/really_black{ + pixel_x = -2 + }, +/obj/structure/window{ + icon_state = "window"; + dir = 1 + }, +/turf/open/floor/plasteel/barber, +/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) +"aYX" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"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 + }, +/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/plasteel/bar, +/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 + }, +/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 + }, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/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 + }, +/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/floorgrime, +/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{ + pixel_y = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"aZu" = ( +/obj/machinery/photocopier, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"aZv" = ( +/obj/machinery/door/airlock{ + name = "Unit 1" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"aZw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"aZx" = ( +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"aZy" = ( +/obj/machinery/camera{ + c_tag = "Conference Room"; + dir = 2 + }, +/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/floorgrime, +/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, +/turf/open/floor/plasteel/blue/corner, +/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, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"aZZ" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"baa" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bab" = ( +/obj/machinery/light, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bac" = ( +/obj/machinery/newscaster{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bad" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bae" = ( +/obj/structure/noticeboard{ + pixel_y = -27 + }, +/turf/open/floor/plasteel/bar, +/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/plasteel/bar, +/area/crew_quarters/bar) +"bah" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bai" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/bar, +/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 = 8; + 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/ai_status_display{ + 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, +/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/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/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{ + dir = 8; + name = "Escape Hallway APC"; + areastring = "/area/hallway/secondary/exit"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/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{ + dir = 4; + name = "Locker Restrooms APC"; + areastring = "/area/crew_quarters/toilet/locker"; + 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, +/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/floorgrime, +/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/floorgrime, +/area/quartermaster/warehouse) +"baZ" = ( +/obj/machinery/status_display{ + 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 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/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) +"bbr" = ( +/obj/machinery/camera{ + c_tag = "Locker Room South"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/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/floorgrime, +/area/quartermaster/warehouse) +"bbu" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Captain's Office APC"; + areastring = "/area/crew_quarters/heads/captain"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bbv" = ( +/obj/machinery/status_display{ + 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, +/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"; + dir = 2 + }, +/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 = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/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{ + dir = 8; + name = "Vacant Office APC"; + areastring = "/area/security/vacantoffice"; + 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{ + name = "Unit 2" + }, +/turf/open/floor/plasteel/freezer, +/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) +"bbN" = ( +/obj/machinery/washing_machine, +/obj/machinery/light, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"bbO" = ( +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"bbP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/warehouse) +"bbQ" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/whiskey{ + pixel_x = 3 + }, +/obj/item/lighter, +/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/floorgrime, +/area/quartermaster/warehouse) +"bbT" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bbU" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Detective Maintenance"; + req_access_txt = "4" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bbV" = ( +/obj/machinery/firealarm{ + dir = 8; + 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) +"bbZ" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"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"; + dir = 2 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bcs" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bct" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"bcu" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Locker Room Maintenance"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/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"; + dir = 2 + }, +/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/floorgrime, +/area/quartermaster/warehouse) +"bcF" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/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, +/turf/open/floor/plasteel/floorgrime, +/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) +"bcO" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"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 = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bcR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/warehouse) +"bcS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/warehouse) +"bcT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/warehouse) +"bcU" = ( +/obj/item/stack/tile/plasteel, +/turf/open/space, +/area/space/nearstation) +"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{ + dir = 2 + }, +/area/hallway/primary/starboard) +"bdc" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/white/corner{ + dir = 2 + }, +/area/hallway/primary/starboard) +"bdd" = ( +/obj/machinery/vending/cola/random, +/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, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bdi" = ( +/obj/machinery/computer/arcade, +/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{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/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 + }, +/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/machinery/door/airlock{ + name = "Unit 3" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"bdK" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"bdL" = ( +/obj/effect/landmark/blobstart, +/obj/item/clothing/suit/ianshirt, +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/port) +"bdM" = ( +/obj/item/latexballon, +/turf/open/floor/plating, +/area/maintenance/port) +"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/floorgrime, +/area/quartermaster/warehouse) +"bdT" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Disposal APC"; + areastring = "/area/maintenance/disposal"; + 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/floorgrime, +/area/quartermaster/warehouse) +"bdV" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bdW" = ( +/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) +"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{ + dir = 2; + name = "Upload APC"; + areastring = "/area/ai_monitored/turret_protected/ai_upload"; + 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{ + base_state = "left"; + dir = 8; + icon_state = "left"; + 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) +"bei" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"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 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/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, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/starboard) +"bet" = ( +/turf/open/floor/plasteel/blue/side, +/area/hallway/primary/starboard) +"beu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side, +/area/hallway/primary/starboard) +"bev" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/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/floorgrime, +/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/floorgrime, +/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 + }, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/sorting) +"beG" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/hallway/secondary/exit) +"beH" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/escape{ + dir = 2 + }, +/area/hallway/secondary/exit) +"beI" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/turf/open/floor/plasteel/escape{ + dir = 2 + }, +/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 = 4; + 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 + }, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/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{ + dir = 2; + machinedir = 8 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"bfa" = ( +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"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{ + dir = 1; + name = "Locker Room APC"; + areastring = "/area/crew_quarters/locker"; + 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, +/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/floorgrime, +/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/floorgrime, +/area/quartermaster/warehouse) +"bfj" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bfk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/power/apc{ + dir = 2; + name = "Cargo Bay APC"; + areastring = "/area/quartermaster/storage"; + 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) +"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" = ( +/turf/open/floor/plasteel/brown/corner{ + dir = 8 + }, +/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 + }, +/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/ai_status_display, +/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, +/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, +/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{ + dir = 2; + name = "Starboard Primary Hallway APC"; + areastring = "/area/hallway/primary/starboard"; + 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" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 10 + }, +/area/hallway/primary/starboard) +"bfX" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 2 + }, +/area/hallway/primary/starboard) +"bfY" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 2 + }, +/area/hallway/primary/starboard) +"bfZ" = ( +/obj/structure/sign/warning/securearea{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 2 + }, +/area/hallway/primary/starboard) +"bga" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/purple/side{ + dir = 2 + }, +/area/hallway/primary/starboard) +"bgb" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 6 + }, +/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, +/turf/open/floor/plasteel/escape{ + dir = 2 + }, +/area/hallway/secondary/exit) +"bge" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/escape{ + dir = 10 + }, +/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, +/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 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"bgo" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Mech Bay APC"; + areastring = "/area/science/robotics/mechbay"; + 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/door/airlock{ + name = "Unit 4" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"bgs" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"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/floorgrime, +/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 + }, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/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 + }, +/turf/open/floor/plasteel/blue/corner, +/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/machinery/vending/coffee, +/obj/machinery/light{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/area/medical/medbay/central) +"bgR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bgS" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Captain's Desk"; + departmentType = 5; + name = "Captain RC"; + pixel_x = -30 + }, +/obj/structure/filingcabinet, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bgT" = ( +/obj/machinery/computer/communications{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/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, +/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, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bgW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/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 = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bgZ" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Chemistry APC"; + areastring = "/area/medical/chemistry"; + 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, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 1 + }, +/area/medical/chemistry) +"bhc" = ( +/obj/machinery/camera{ + c_tag = "Chemistry"; + dir = 2 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/chem_heater, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bhd" = ( +/obj/machinery/chem_master, +/obj/machinery/button/door{ + id = "chemistry_shutters"; + name = "Chemistry shutters"; + pixel_x = 24; + pixel_y = -6; + req_one_access_txt = "5; 33" + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 5 + }, +/area/medical/chemistry) +"bhe" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bhf" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bhg" = ( +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/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"; + dir = 2 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = 30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/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, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/medical) +"bhl" = ( +/obj/structure/filingcabinet, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/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{ + dir = 1; + name = "Morgue APC"; + areastring = "/area/medical/morgue"; + 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 + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 8 + }, +/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/department/science, +/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, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bhF" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/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/crew_quarters/toilet/locker) +"bhR" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window{ + icon_state = "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{ + icon_state = "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, +/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{ + dir = 4; + icon_state = "right"; + name = "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{ + freerange = 0; + frequency = 1459; + 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 + }, +/turf/open/floor/plasteel/blue/corner, +/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, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"bih" = ( +/obj/effect/turf_decal/bot_white/right, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/engine/gravity_generator) +"bii" = ( +/obj/effect/turf_decal/bot_white/left, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/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, +/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/structure/table/glass, +/obj/item/reagent_containers/glass/bottle/epinephrine, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/machinery/requests_console{ + department = "Chemistry"; + departmentType = 2; + pixel_x = -30; + receive_ore_updates = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/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, +/obj/machinery/door/poddoor/preopen{ + id = "chemistry_shutters"; + name = "Chemistry shutters" + }, +/turf/open/floor/plating, +/area/medical/chemistry) +"bis" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/chemist, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 4 + }, +/area/medical/chemistry) +"bit" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/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 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 8 + }, +/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, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/medical) +"biy" = ( +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_x = 25 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/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{ + icon_state = "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, +/turf/open/floor/plasteel/whitered/corner{ + dir = 1 + }, +/area/science/robotics/lab) +"biL" = ( +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"biN" = ( +/turf/open/floor/plasteel/whitered/side{ + dir = 1 + }, +/area/science/robotics/lab) +"biO" = ( +/obj/machinery/camera{ + c_tag = "Robotics Lab"; + dir = 2; + network = list("ss13","rd") + }, +/obj/machinery/button/door{ + dir = 2; + 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, +/turf/open/floor/plasteel/whitered/corner{ + dir = 4 + }, +/area/science/robotics/lab) +"biP" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/whitered/side{ + dir = 1 + }, +/area/science/robotics/lab) +"biQ" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/whitered/side{ + dir = 1 + }, +/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"; + dir = 2 + }, +/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" = ( +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/science/lab) +"biV" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/science/lab) +"biW" = ( +/turf/open/floor/plasteel/white, +/area/science/lab) +"biX" = ( +/obj/machinery/camera{ + c_tag = "Research and Development"; + dir = 2; + network = list("ss13","rd"); + pixel_x = 22 + }, +/obj/machinery/button/door{ + dir = 2; + id = "rnd"; + name = "Shutters Control Button"; + pixel_x = -6; + pixel_y = 24; + req_access_txt = "47" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/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{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + 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{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + 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/camera{ + c_tag = "Gravity Generator Room"; + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/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, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 4 + }, +/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, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/area/medical/medbay/central) +"bjU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 2 + }, +/area/medical/medbay/central) +"bjV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/area/medical/medbay/central) +"bjX" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/medical) +"bjY" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/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"; + network = list("ss13","medbay"); + dir = 8 + }, +/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{ + dir = 2; + 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{ + 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{ + pixel_y = 2; + supply_display = 1 + }, +/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) +"bkA" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"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) +"bkI" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"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, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/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 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 8 + }, +/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{ + dir = 4; + name = "Conference Room APC"; + areastring = "/area/bridge/meeting_room"; + 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" = ( +/obj/machinery/gravity_generator/main/station, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"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, +/obj/machinery/door/poddoor/preopen{ + id = "chemistry_shutters"; + name = "Chemistry shutters" + }, +/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, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/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"; + network = list("ss13","medbay"); + dir = 8 + }, +/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{ + dir = 1; + name = "Starboard Emergency Storage APC"; + areastring = "/area/storage/emergency/starboard"; + 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{ + dir = 8; + name = "Medbay Security APC"; + areastring = "/area/security/checkpoint/medical"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/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 + }, +/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{ + freerange = 0; + frequency = 1459; + 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/roboticist, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"blO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/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) +"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) +"blT" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"blU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/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 = 4; + 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 + }, +/turf/closed/wall/r_wall, +/area/science/lab) +"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, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bmf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/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) +"bml" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/office) +"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/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 8 + }, +/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" + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/quartermaster/office) +"bmu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bmv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"bmw" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"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 + }, +/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/assembly/igniter{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/assembly/igniter{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/assembly/igniter{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/assembly/igniter{ + pixel_x = -2; + pixel_y = 2 + }, +/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/plasteel/white, +/area/medical/chemistry) +"bmG" = ( +/obj/machinery/chem_dispenser, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 2 + }, +/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, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 6 + }, +/area/medical/chemistry) +"bmJ" = ( +/obj/item/radio/intercom{ + broadcasting = 1; + freerange = 0; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_y = -30 + }, +/obj/machinery/light, +/obj/machinery/firealarm{ + dir = 8; + 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, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/medical) +"bmO" = ( +/obj/structure/closet/secure_closet/security/med, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/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{ + dir = 4 + }, +/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, +/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) +"bng" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/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 = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"bnk" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bnl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/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 + }, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/plating, +/area/science/lab) +"bnr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "Research Division" + }, +/turf/open/floor/plasteel, +/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 + }, +/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) +"bnC" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/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 + }, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/sorting) +"bnM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bnN" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/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, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/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) +"bnU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/turf/open/floor/plasteel/dark, +/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-2" + }, +/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, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"boa" = ( +/obj/structure/toilet{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/heads/captain) +"bob" = ( +/obj/structure/table/glass, +/obj/item/screwdriver{ + pixel_x = 2; + pixel_y = 18 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/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/pen, +/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, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/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, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/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{ + announcementConsole = 0; + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = 30 + }, +/obj/machinery/light, +/mob/living/simple_animal/bot/cleanbot{ + name = "C.L.E.A.N." + }, +/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, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/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{ + dir = 8; + name = "Robotics Lab APC"; + areastring = "/area/science/robotics/lab"; + 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, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/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{ + dir = 2 + }, +/area/science/research) +"boN" = ( +/turf/open/floor/plasteel/brown/corner{ + dir = 1 + }, +/area/quartermaster/office) +"boO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/science/research) +"boQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/science/research) +"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 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"boX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopqueue"; + name = "HoP Queue Shutters" + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"boY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/hallway/primary/central) +"boZ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/northleft{ + dir = 8; + icon_state = "left"; + name = "Reception Window" + }, +/obj/machinery/door/window/brigdoor{ + base_state = "rightsecure"; + dir = 4; + icon_state = "rightsecure"; + name = "Head of Personnel's Desk"; + req_access = null; + 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) +"bpa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"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 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/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) +"bpf" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bpg" = ( +/obj/structure/chair/office/light, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bph" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bpi" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/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 + }, +/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, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/science/research) +"bpq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/science/research) +"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, +/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, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/chemistry) +"bpG" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Genetics APC"; + areastring = "/area/medical/genetics"; + 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"; + departmentType = 0; + 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, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 5 + }, +/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/machinery/smartfridge/chemistry, +/turf/closed/wall, +/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/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/science/research) +"bpY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bpZ" = ( +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/science/research) +"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/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"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, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/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{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/research) +"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, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/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" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/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/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Gravity Generator APC"; + areastring = "/area/engine/gravity_generator"; + pixel_x = -25; + pixel_y = 1 + }, +/obj/structure/table, +/obj/item/paper/guides/jobs/engi/gravity_gen{ + layer = 3 + }, +/obj/item/pen/blue, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bqE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bqF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bqG" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable, +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"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 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 1 + }, +/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 + }, +/turf/open/floor/plasteel/whiteyellow/corner{ + dir = 4 + }, +/area/medical/medbay/central) +"bqS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 1 + }, +/area/medical/medbay/central) +"bqT" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 1 + }, +/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"); + dir = 2 + }, +/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 + }, +/turf/open/floor/plasteel/whiteyellow/corner{ + dir = 1 + }, +/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 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 6 + }, +/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" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 2 + }, +/area/medical/medbay/central) +"bri" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/area/medical/medbay/central) +"brj" = ( +/obj/structure/bed/roller, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 6 + }, +/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/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"brn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"bro" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"brq" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door{ + dir = 2; + 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/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window, +/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, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bru" = ( +/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/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) +"brx" = ( +/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/plasteel/white, +/area/science/research) +"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/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 6 + }, +/obj/item/pen, +/turf/open/floor/plasteel/white, +/area/science/explab) +"brA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Experimentor Lab"; + dir = 2; + network = list("ss13","rd") + }, +/obj/structure/closet/l3closet/scientist, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"brC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = 3 + }, +/turf/open/floor/plasteel/white, +/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) +"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" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bsb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bsc" = ( +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bsd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bse" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bsf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bsg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"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{ + dir = 2; + 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{ + broadcasting = 0; + listening = 1; + 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, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/hallway/primary/central) +"bsq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/radio/intercom{ + broadcasting = 0; + freerange = 0; + frequency = 1485; + listening = 1; + 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{ + broadcasting = 0; + freerange = 0; + frequency = 1485; + listening = 1; + name = "Station Intercom (Medbay)"; + pixel_x = 30 + }, +/obj/machinery/camera{ + c_tag = "Medbay East"; + network = list("ss13","medbay"); + dir = 8; + 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" + }, +/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{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"bsA" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"bsH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/explab) +"bsI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/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, +/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/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"btb" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/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) +"btf" = ( +/obj/machinery/requests_console{ + announcementConsole = 0; + 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 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bti" = ( +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"btj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/explab) +"btk" = ( +/obj/structure/closet/wardrobe/white, +/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{ + dir = 2; + 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 = 8; + 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 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"btz" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/brown/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"btA" = ( +/obj/machinery/camera{ + c_tag = "Research Division West"; + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"btB" = ( +/obj/machinery/computer/bounty{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/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/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/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) +"btF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"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{ + dir = 8; + name = "Teleporter APC"; + areastring = "/area/teleporter"; + 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, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/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{ + dir = 2; + 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) +"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{ + dir = 2; + name = "Cargo Office APC"; + areastring = "/area/quartermaster/office"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown/corner{ + dir = 2 + }, +/area/quartermaster/office) +"bud" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 5 + }, +/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) +"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/machinery/power/apc{ + areastring = "/area/science/circuit"; + name = "Circuitry Lab APC"; + pixel_x = 24 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"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, +/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) +"bux" = ( +/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/whitepurple/side{ + dir = 4 + }, +/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{ + id = "QMLoad"; + dir = 8 + }, +/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, +/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 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/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) +"buP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/engine/gravity_generator) +"buQ" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"buR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/gravity_generator) +"buS" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Gravity Generator Foyer" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"buT" = ( +/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/whiteblue/side{ + dir = 8 + }, +/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, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/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/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Research Division North"; + 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/manifold/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 + }, +/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, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 6 + }, +/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 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/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"; + network = list("ss13","medbay"); + dir = 8; + 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" + }, +/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 + }, +/turf/open/floor/plasteel/brown{ + dir = 9 + }, +/area/quartermaster/qm) +"bvH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/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" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/supply) +"bvM" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/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) +"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{ + pixel_y = -30; + supply_display = 1 + }, +/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 + }, +/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, +/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, +/turf/open/floor/plasteel/brown/corner{ + dir = 8 + }, +/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, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/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) +"bwm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/engine/gravity_generator) +"bwn" = ( +/obj/structure/closet/radiation, +/obj/structure/sign/warning/radiation/rad_area{ + pixel_x = -32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bwo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/engine/gravity_generator) +"bwp" = ( +/obj/structure/closet/radiation, +/obj/structure/sign/warning/radiation/rad_area{ + pixel_x = 32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"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) +"bwC" = ( +/obj/machinery/computer/med_data{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/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"); + dir = 2 + }, +/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"; + network = list("ss13","medbay"); + dir = 4 + }, +/obj/structure/table, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/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) +"bwM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/science) +"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 + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/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) +"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) +"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, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/supply) +"bxC" = ( +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/supply) +"bxD" = ( +/obj/item/book/manual/wiki/security_space_law, +/obj/structure/table, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/supply) +"bxE" = ( +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/supply) +"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) +"bxH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/engine/gravity_generator) +"bxI" = ( +/obj/machinery/ai_status_display, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/engine/gravity_generator) +"bxJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/engine/gravity_generator) +"bxK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/engine/gravity_generator) +"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, +/turf/open/floor/plasteel/red/side, +/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/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/stamp/qm, +/turf/open/floor/plasteel/brown{ + dir = 2 + }, +/area/quartermaster/qm) +"byd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + dir = 2 + }, +/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, +/turf/open/floor/plasteel/brown{ + dir = 2 + }, +/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 + }, +/turf/open/floor/plasteel/brown{ + dir = 2 + }, +/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 + }, +/turf/open/floor/plasteel/brown{ + dir = 6 + }, +/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" = ( +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/qm) +"byA" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Quartermaster APC"; + areastring = "/area/quartermaster/qm"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/qm) +"byB" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/qm) +"byC" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/qm) +"byD" = ( +/obj/structure/closet/secure_closet/quartermaster, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/brown{ + dir = 5 + }, +/area/quartermaster/qm) +"byE" = ( +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"byF" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Dock APC"; + areastring = "/area/quartermaster/miningdock"; + 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, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint/supply) +"byI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/supply) +"byP" = ( +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/central) +"byQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/central) +"byR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/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, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/supply) +"byU" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"byV" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/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{ + announcementConsole = 0; + 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 + }, +/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, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 10 + }, +/area/medical/genetics) +"bzm" = ( +/obj/machinery/clonepod, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 6 + }, +/area/medical/genetics) +"bzn" = ( +/obj/machinery/computer/cloning{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/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; + pressure_checks = 0; + name = "server vent" + }, +/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"; + dir = 2; + network = list("ss13","rd"); + pixel_x = 22 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Server Room APC"; + areastring = "/area/science/server"; + 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, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/science) +"bzA" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"bzC" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/science) +"bzD" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/computer/security/telescreen/circuitry, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/science) +"bzE" = ( +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"bzF" = ( +/obj/machinery/firealarm{ + dir = 4; + 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, +/turf/open/floor/plasteel/yellow/corner{ + dir = 2 + }, +/area/hallway/primary/central) +"bzH" = ( +/obj/structure/table, +/obj/item/hemostat, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/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{ + dir = 2 + }, +/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 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/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, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 2 + }, +/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" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/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" + }, +/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, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/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, +/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" + }, +/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 + }, +/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{ + dir = 1; + name = "Cargo Security APC"; + areastring = "/area/security/checkpoint/supply"; + 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 = 8; + 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"; + network = list("ss13","medbay"); + dir = 8 + }, +/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/server/walkway, +/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/server/walkway, +/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, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/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, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/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, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bAP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 2 + }, +/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{ + pixel_x = -32; + supply_display = 1 + }, +/obj/machinery/computer/security/qm{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + dir = 10 + }, +/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 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/sleeper) +"bBe" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/supply) +"bBg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBh" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 8 + }, +/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" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/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 + }, +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/status_display{ + 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 + }, +/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 + }, +/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/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bBG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/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 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bBJ" = ( +/obj/machinery/firealarm{ + dir = 2; + 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 + }, +/turf/open/floor/plasteel/barber, +/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 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/heads/cmo) +"bBQ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/heads/cmo) +"bBR" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/aft) +"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, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint/science) +"bBZ" = ( +/obj/item/screwdriver{ + pixel_y = 10 + }, +/obj/item/radio/off, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/science) +"bCa" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Science Security APC"; + areastring = "/area/security/checkpoint/science"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/science) +"bCb" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/pen, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/science) +"bCc" = ( +/obj/machinery/computer/secure_data{ + dir = 1 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = -30 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/science) +"bCd" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + sortType = 15 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/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{ + dir = 8; + name = "RD Office APC"; + areastring = "/area/crew_quarters/heads/hor"; + 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, +/turf/open/floor/plasteel/yellow/corner{ + dir = 2 + }, +/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 + }, +/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, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/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/machinery/vending/cigarette, +/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{ + dir = 2 + }, +/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/gun/syringe, +/obj/item/reagent_containers/dropper, +/obj/item/soap/nanotrasen, +/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) +"bCI" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/library) +"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"); + dir = 2 + }, +/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, +/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, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/sleeper) +"bCT" = ( +/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/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bCU" = ( +/obj/item/radio/intercom{ + broadcasting = 0; + freerange = 0; + frequency = 1485; + listening = 1; + name = "Station Intercom (Medbay)"; + pixel_x = -30 + }, +/obj/machinery/camera{ + c_tag = "Medbay South"; + network = list("ss13","medbay"); + dir = 4 + }, +/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, +/turf/open/floor/plasteel/barber, +/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/floorgrime, +/area/science/storage) +"bCY" = ( +/turf/open/floor/plasteel/barber, +/area/crew_quarters/heads/cmo) +"bCZ" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start/chief_medical_officer, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/heads/cmo) +"bDa" = ( +/obj/machinery/keycard_auth{ + pixel_x = 24 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/barber, +/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/floorgrime, +/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) +"bDi" = ( +/obj/structure/sign/warning/docking{ + pixel_y = 32 + }, +/turf/open/space, +/area/space/nearstation) +"bDj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/science/storage) +"bDk" = ( +/obj/structure/table, +/obj/item/folder/yellow, +/obj/item/pen, +/obj/machinery/requests_console{ + department = "Mining"; + departmentType = 0; + pixel_x = -30 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bDl" = ( +/obj/machinery/firealarm{ + dir = 8; + 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/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 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bDp" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 2 + }, +/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, +/turf/open/floor/plasteel, +/area/janitor) +"bDs" = ( +/obj/structure/reagent_dispensers/watertank, +/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/ai_status_display{ + pixel_x = -32 + }, +/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) +"bDy" = ( +/obj/machinery/camera{ + c_tag = "Tech Storage"; + dir = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Tech Storage APC"; + areastring = "/area/storage/tech"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bDz" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bDA" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/power/apc{ + dir = 4; + name = "Treatment Center APC"; + areastring = "/area/medical/sleeper"; + 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/sign/warning/nosmoking{ + pixel_x = -28 + }, +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/sleeper) +"bDE" = ( +/obj/machinery/vending/wallmed{ + pixel_x = 28 + }, +/obj/machinery/camera{ + c_tag = "Medbay Recovery Room"; + network = list("ss13","medbay"); + dir = 8 + }, +/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, +/turf/open/floor/plasteel/yellow/corner{ + dir = 2 + }, +/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/item/storage/box/lights/mixed, +/obj/item/storage/box/lights/mixed, +/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" = ( +/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" + }, +/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 + }, +/turf/open/floor/plasteel/barber, +/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 + }, +/turf/open/floor/plasteel/barber, +/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/floorgrime, +/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/floorgrime, +/area/science/storage) +"bEc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/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/floorgrime, +/area/science/storage) +"bEh" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/turf/open/floor/plasteel/barber, +/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, +/mob/living/simple_animal/pet/cat/Runtime, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/heads/cmo) +"bEk" = ( +/obj/structure/table/glass, +/obj/item/folder/white, +/obj/item/stamp/cmo, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/plasteel/barber, +/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"; + network = list("ss13","medbay"); + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/heads/cmo) +"bEm" = ( +/turf/open/floor/engine, +/area/science/xenobiology) +"bEn" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Test Chamber"; + dir = 2; + 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{ + dir = 8; + name = "Misc Research APC"; + areastring = "/area/science/research"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"bEr" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/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) +"bEz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"bEA" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bEC" = ( +/turf/closed/wall/r_wall, +/area/science/mixing) +"bED" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/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) +"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) +"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 = "1-4" + }, +/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, +/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, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/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, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bFk" = ( +/obj/item/mop, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel, +/area/janitor) +"bFl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Custodial Closet APC"; + areastring = "/area/janitor"; + 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, +/turf/open/floor/plasteel/yellow/corner{ + dir = 2 + }, +/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 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/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, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -2; + pixel_y = 2 + }, +/turf/open/floor/plasteel/bar, +/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 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/heads/cmo) +"bFF" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bFG" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/heads/cmo) +"bFH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light_switch{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/heads/cmo) +"bFI" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/science/storage) +"bFJ" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/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 + }, +/turf/open/floor/plasteel/barber, +/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 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/heads/cmo) +"bFQ" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/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) +"bFW" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bFX" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Toxins Lab APC"; + areastring = "/area/science/mixing"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/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) +"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{ + dir = 2 + }, +/turf/open/floor/plasteel{ + dir = 2 + }, +/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 + }, +/turf/open/floor/plasteel/brown{ + dir = 9 + }, +/area/quartermaster/miningdock) +"bGk" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/scientist, +/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"; + dir = 2 + }, +/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/structure/cable{ + icon_state = "1-2" + }, +/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, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bGA" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/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, +/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 = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/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 + }, +/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, +/turf/open/floor/plasteel/yellow/corner{ + dir = 2 + }, +/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/hand_labeler, +/obj/item/gun/syringe, +/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/floorgrime, +/area/science/storage) +"bGZ" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/barber, +/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 + }, +/turf/open/floor/plasteel/barber, +/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 + }, +/obj/machinery/door/firedoor/heavy, +/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{ + dir = 8; + name = "Toxins Storage APC"; + areastring = "/area/science/storage"; + 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/floorgrime, +/area/science/storage) +"bHf" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel/white, +/area/science/research) +"bHg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"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, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bHl" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 2 + }, +/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{ + dir = 2 + }, +/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 = 5 + }, +/obj/machinery/computer/security/telescreen/toxins{ + dir = 4; + pixel_x = 30 + }, +/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, +/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" = ( +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/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) +"bHF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"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/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/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" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 2 + }, +/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, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/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/machinery/door/poddoor/preopen{ + id = "medpriv1"; + name = "privacy door" + }, +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/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{ + dir = 8; + name = "Aft Maintenance APC"; + areastring = "/area/maintenance/aft"; + 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"; + network = list("ss13","medbay"); + dir = 1; + pixel_x = 22 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"bIe" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/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, +/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 + }, +/turf/open/floor/plasteel/barber, +/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/floorgrime, +/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{ + dir = 2 + }, +/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{ + dir = 6 + }, +/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/airless, +/area/science/test_area) +"bIZ" = ( +/obj/structure/chair, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/science/test_area) +"bJa" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/science/test_area) +"bJb" = ( +/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) +"bJc" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 3; + height = 5; + id = "mining_home"; + name = "mining shuttle bay"; + roundstart_template = /datum/map_template/shuttle/mining/box; + width = 7 + }, +/turf/open/space/basic, +/area/space) +"bJd" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Dock"; + req_access_txt = "48" + }, +/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) +"bJp" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/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, +/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, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/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, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/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) +"bJL" = ( +/obj/machinery/door/window/southleft{ + dir = 1; + name = "Test Chamber"; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bJM" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/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/machinery/vending/boozeomat/all_access, +/turf/open/floor/plasteel/bar, +/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) +"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/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bKa" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/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/airless, +/area/science/test_area) +"bKh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/science/test_area) +"bKi" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/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, +/turf/open/floor/plasteel/brown{ + dir = 10 + }, +/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{ + dir = 4; + name = "Medbay APC"; + areastring = "/area/medical/medbay/central"; + 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/vending/wallmed{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bKN" = ( +/obj/machinery/door/airlock/medical{ + name = "Patient Room 2"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/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{ + dir = 1; + name = "CM Office APC"; + areastring = "/area/crew_quarters/heads/cmo"; + 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{ + dir = 2 + }, +/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{ + dir = 2 + }, +/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) +"bLa" = ( +/obj/machinery/door/window/southleft{ + name = "Test Chamber"; + req_access_txt = "55" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bLb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/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{ + dir = 2 + }, +/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/crew_quarters/heads/hor) +"bLi" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/science/mixing/chamber"; + dir = 8; + name = "Toxins Chamber APC"; + pixel_x = -26 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/white, +/area/science/mixing/chamber) +"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/airless, +/area/science/test_area) +"bLo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/science/test_area) +"bLp" = ( +/obj/item/beacon, +/turf/open/floor/plating/airless, +/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{ + luminosity = 2; + initial_gas_mix = "o2=0.01;n2=0.01" + }, +/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, +/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, +/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{ + dir = 2; + name = "Delivery Office APC"; + areastring = "/area/quartermaster/sorting"; + 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, +/turf/open/floor/plasteel/caution{ + dir = 5 + }, +/area/hallway/primary/aft) +"bLI" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bLJ" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bLK" = ( +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bLL" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bLM" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bLN" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/effect/turf_decal/bot, +/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/structure/table, +/obj/item/folder/white, +/obj/item/clothing/neck/stethoscope, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bLV" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/machinery/button/door{ + id = "medpriv1"; + name = "Privacy Shutters"; + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/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) +"bMg" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Xenobiology APC"; + areastring = "/area/science/xenobiology"; + 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{ + dir = 2; + 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/chamber) +"bMu" = ( +/obj/machinery/door/poddoor/incinerator_toxmix, +/turf/open/floor/engine/vacuum, +/area/science/mixing/chamber) +"bMv" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/mixing/chamber) +"bMw" = ( +/obj/machinery/sparker/toxmix{ + dir = 2; + pixel_x = 25 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing/chamber) +"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/chamber) +"bMy" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "mix to port" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/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/chamber) +"bMA" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/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/airless, +/area/science/test_area) +"bME" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/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/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bMM" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bMN" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4 + }, +/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{ + dir = 2; + 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{ + dir = 2 + }, +/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) +"bNb" = ( +/obj/item/airlock_painter, +/obj/structure/lattice, +/obj/structure/closet, +/turf/open/space, +/area/space/nearstation) +"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) +"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, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/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) +"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/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"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/chamber) +"bNu" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior, +/turf/open/floor/engine, +/area/science/mixing/chamber) +"bNv" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, +/turf/open/floor/engine, +/area/science/mixing/chamber) +"bNw" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix{ + dir = 2 + }, +/turf/open/floor/engine, +/area/science/mixing/chamber) +"bNx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/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/chamber) +"bNz" = ( +/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 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + 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/airless, +/area/science/test_area) +"bNE" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/science/test_area) +"bNF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/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{ + name = "Station Intercom (General)"; + 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) +"bNL" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plating, +/area/construction) +"bNN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bNO" = ( +/turf/open/floor/plasteel/caution{ + dir = 6 + }, +/area/hallway/primary/aft) +"bNP" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/item/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = -30 + }, +/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/airalarm{ + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Monitoring"; + dir = 2 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 5 + }, +/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) +"bNY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bOa" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOc" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix to Distro" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOd" = ( +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOe" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/obj/machinery/meter, +/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) +"bOi" = ( +/turf/open/floor/plasteel/airless{ + icon_state = "damaged5" + }, +/area/space/nearstation) +"bOj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) +"bOl" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/announcement_system, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bOm" = ( +/obj/item/bedsheet, +/obj/structure/bed, +/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"); + dir = 2 + }, +/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/structure/table, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + dir = 2; + name = "Science Requests Console"; + pixel_y = 30; + receive_ore_updates = 1 + }, +/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/machinery/atmospherics/components/binary/pump{ + 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) +"bOB" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/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{ + dir = 2; + pixel_x = 25 + }, +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing/chamber) +"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/chamber) +"bOG" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "port to mix" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/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/chamber) +"bOI" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/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, +/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 + }, +/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{ + dir = 8; + name = "Engineering Security APC"; + areastring = "/area/security/checkpoint/engineering"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/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, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"bOQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bOR" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bOS" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOT" = ( +/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, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bOU" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/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/computer/atmos_control{ + dir = 8 + }, +/obj/machinery/requests_console{ + department = "Atmospherics"; + departmentType = 4; + name = "Atmos RC"; + pixel_x = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/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) +"bPc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bPd" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Waste In" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bPe" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bPf" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Air to Mix" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bPg" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix Outlet Pump" + }, +/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, +/turf/open/floor/plasteel/green/side{ + dir = 5 + }, +/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/structure/table, +/obj/item/folder/white, +/obj/item/folder/white, +/obj/item/pen, +/obj/item/taperecorder, +/obj/item/paper_bin{ + pixel_y = 6 + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Testing Lab APC"; + areastring = "/area/science/misc_lab"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/floorgrime, +/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) +"bPy" = ( +/obj/effect/landmark/start/scientist, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/black, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bPz" = ( +/obj/structure/table/glass, +/obj/item/storage/box/beakers{ + 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) +"bPB" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_y = 4 + }, +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bPC" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bPD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bPE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/portable_atmospherics/canister/bz, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"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) +"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) +"bPR" = ( +/obj/effect/decal/cleanable/robot_debris/old, +/turf/open/floor/wood, +/area/maintenance/port/aft) +"bPS" = ( +/turf/open/floor/wood, +/area/maintenance/port/aft) +"bPT" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/port/aft) +"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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/engineering) +"bQf" = ( +/turf/open/floor/plasteel/caution{ + dir = 5 + }, +/area/hallway/primary/aft) +"bQg" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bQh" = ( +/obj/structure/tank_dispenser{ + pixel_x = -1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQi" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "Atmospherics Blast Door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/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/machinery/computer/atmos_control{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/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/components/unary/portables_connector/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/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, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/engineering) +"bQr" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQs" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Mix to Filter" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQt" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQu" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQv" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQw" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQx" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, +/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 + }, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/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) +"bQH" = ( +/obj/structure/closet/l3closet, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"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) +"bQL" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bQM" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + 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, +/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) +"bQT" = ( +/obj/structure/closet/bombcloset, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bQU" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bQZ" = ( +/turf/closed/wall/r_wall, +/area/science/misc_lab) +"bRc" = ( +/obj/structure/table/wood, +/obj/item/soap/nanotrasen, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/port/aft) +"bRe" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/wood, +/area/maintenance/port/aft) +"bRf" = ( +/obj/structure/table/wood, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/port/aft) +"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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/engineering) +"bRp" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bRq" = ( +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/hallway/primary/aft) +"bRr" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/atmospheric_technician, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRs" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/window/northleft{ + dir = 4; + icon_state = "left"; + 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) +"bRt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRu" = ( +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/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/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRx" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/engine/atmos) +"bRy" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRz" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 8 + }, +/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/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/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/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRE" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Pure to Mix" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRF" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRG" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Unfiltered to Mix" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRH" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5 + }, +/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/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/green/side{ + dir = 6 + }, +/area/engine/atmos) +"bRK" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"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 = 4; + 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) +"bRX" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bRY" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/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) +"bSc" = ( +/obj/structure/table, +/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" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/science/misc_lab) +"bSd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bSh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bSk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"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/machinery/space_heater, +/turf/open/floor/wood, +/area/maintenance/port/aft) +"bSo" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood, +/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) +"bSu" = ( +/obj/item/stack/cable_coil{ + amount = 5 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"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, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bSB" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/table, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = -8 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = -8 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 4 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bSC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "Atmospherics Blast Door" + }, +/turf/open/floor/plating, +/area/engine/atmos) +"bSD" = ( +/obj/structure/sign/plaques/atmos{ + pixel_y = -32 + }, +/obj/structure/table, +/obj/item/storage/box, +/obj/item/storage/box, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bSE" = ( +/obj/machinery/computer/station_alert{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_x = 24; + pixel_y = 4; + req_access_txt = "24" + }, +/turf/open/floor/plasteel/caution{ + dir = 6 + }, +/area/engine/atmos) +"bSF" = ( +/obj/structure/table, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/clothing/head/welding{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/multitool, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bSG" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty{ + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bSH" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/obj/item/storage/belt/utility, +/obj/item/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bSI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bSJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bSK" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bSM" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bSN" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bSP" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/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 + }, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/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{ + dir = 1; + name = "Virology APC"; + areastring = "/area/medical/virology"; + 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) +"bTa" = ( +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bTb" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bTc" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bTd" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bTe" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/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) +"bTl" = ( +/turf/open/floor/engine, +/area/science/misc_lab) +"bTo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"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) +"bTs" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/port/aft) +"bTt" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/port/aft) +"bTu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/port/aft) +"bTv" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bTw" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bTx" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bTy" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/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 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/engineering) +"bTH" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/security_space_law, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/red/side, +/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{ + name = "Aft Hall APC"; + areastring = "/area/hallway/primary/aft"; + dir = 8; + pixel_x = -25; + pixel_y = 1 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bTK" = ( +/obj/item/crowbar, +/obj/item/wrench, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/caution{ + dir = 6 + }, +/area/hallway/primary/aft) +"bTL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/engine/atmos) +"bTM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/engine/atmos) +"bTN" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Monitoring"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/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/pipe/simple/yellow/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTR" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTS" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTT" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTU" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bTV" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "N2O Outlet Pump" + }, +/turf/open/floor/plasteel/escape{ + dir = 5 + }, +/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) +"bUf" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bUg" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/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) +"bUl" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + sortType = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/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/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/science/mixing) +"bUo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel, +/area/science/mixing) +"bUp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bUq" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bUr" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 + }, +/turf/open/space, +/area/space/nearstation) +"bUs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bUt" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/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{ + dir = 2; + name = "Telecomms Monitoring APC"; + areastring = "/area/tcommsat/computer"; + 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, +/turf/open/floor/plasteel/arrival{ + dir = 8 + }, +/area/engine/atmos) +"bUF" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/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/components/binary/pump/on{ + dir = 8; + name = "Air to External" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUN" = ( +/obj/item/beacon, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUO" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Port" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUP" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Air to Port" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUQ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Pure to Port" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUR" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUS" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUT" = ( +/obj/machinery/computer/atmos_control/tank/nitrous_tank{ + dir = 8 + }, +/turf/open/floor/plasteel/escape{ + dir = 4 + }, +/area/engine/atmos) +"bUU" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/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, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/hallway/primary/aft) +"bVd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/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, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/aft) +"bVg" = ( +/obj/item/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/hallway/primary/aft) +"bVh" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/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) +"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) +"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/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bVt" = ( +/obj/structure/table/reinforced, +/obj/item/storage/firstaid/toxin, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bVu" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/space, +/area/space/nearstation) +"bVv" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"bVx" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 2 + }, +/turf/open/floor/plating/airless, +/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) +"bVz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"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 + }, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bVQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bVR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/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/components/binary/pump/on{ + dir = 4; + name = "External to Filter" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bVU" = ( +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bVV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bVW" = ( +/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) +"bVX" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bVY" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bVZ" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bWa" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bWb" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bWc" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/escape{ + dir = 6 + }, +/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, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"bWg" = ( +/obj/structure/table, +/obj/item/hand_labeler, +/obj/item/radio/headset/headset_med, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/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) +"bWk" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/turf/open/floor/plasteel/white, +/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/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/science/research) +"bWr" = ( +/turf/open/floor/plasteel/white, +/area/science/research) +"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/floorgrime, +/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/mainframe, +/area/tcommsat/server) +"bWD" = ( +/obj/machinery/telecomms/server/presets/engineering, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/area/tcommsat/server) +"bWE" = ( +/obj/machinery/telecomms/processor/preset_three, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/area/tcommsat/server) +"bWF" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/power/apc/highcap/five_k{ + dir = 1; + name = "Telecomms Server APC"; + areastring = "/area/tcommsat/server"; + 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/mainframe, +/area/tcommsat/server) +"bWH" = ( +/obj/structure/table, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/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 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/hallway/primary/aft) +"bWL" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bWM" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/engine/atmos) +"bWN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "Atmospherics Blast Door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bWO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bWP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "Atmospherics Blast Door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bWQ" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/engineering) +"bWR" = ( +/obj/item/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bWS" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics West"; + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bWT" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Air to Port" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bWU" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bWV" = ( +/obj/structure/door_assembly/door_assembly_mai, +/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 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/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) +"bXe" = ( +/mob/living/simple_animal/slime, +/turf/open/floor/engine, +/area/science/xenobiology) +"bXf" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bXg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio7"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bXh" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/floorgrime, +/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) +"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 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/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/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bXs" = ( +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bXt" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"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/floorgrime, +/area/maintenance/port/aft) +"bXx" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/port/aft) +"bXy" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/port/aft) +"bXz" = ( +/obj/machinery/telecomms/processor/preset_four, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/area/tcommsat/server) +"bXA" = ( +/obj/machinery/telecomms/server/presets/common, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/area/tcommsat/server) +"bXB" = ( +/obj/machinery/telecomms/bus/preset_three, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/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/mainframe, +/area/tcommsat/server) +"bXE" = ( +/obj/machinery/computer/message_monitor{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/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, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/engine/atmos) +"bXK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bXL" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bXM" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bXN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bXO" = ( +/obj/structure/filingcabinet, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/engineering) +"bXP" = ( +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = 30 + }, +/obj/structure/closet/secure_closet/security/engine, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/engineering) +"bXQ" = ( +/obj/structure/fireaxecabinet{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bXR" = ( +/obj/structure/closet/secure_closet/atmospherics, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bXS" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/turf/open/floor/plasteel{ + dir = 2 + }, +/area/engine/atmos) +"bXT" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/turf/open/floor/plasteel{ + dir = 2 + }, +/area/engine/atmos) +"bXU" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/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 + }, +/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 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/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/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"bYl" = ( +/obj/structure/chair/office/light{ + icon_state = "officechair_white"; + dir = 4 + }, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/floorgrime, +/area/science/misc_lab) +"bYm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/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" + }, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/aft) +"bYo" = ( +/obj/structure/table, +/obj/machinery/computer/security/telescreen{ + dir = 8; + name = "Test Chamber Monitor"; + network = list("test") + }, +/turf/open/floor/plasteel/floorgrime, +/area/science/misc_lab) +"bYp" = ( +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/hallway/primary/aft) +"bYq" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/yellow/side, +/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/floorgrime, +/area/maintenance/port/aft) +"bYw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/port/aft) +"bYx" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/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/mainframe, +/area/tcommsat/server) +"bYA" = ( +/obj/machinery/telecomms/broadcaster/preset_right, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/area/tcommsat/server) +"bYB" = ( +/obj/machinery/blackbox_recorder, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/area/tcommsat/server) +"bYC" = ( +/obj/machinery/telecomms/receiver/preset_right, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/area/tcommsat/server) +"bYD" = ( +/obj/machinery/computer/telecomms/server{ + dir = 4; + network = "tcommsat" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/tcommsat/computer) +"bYE" = ( +/turf/open/floor/plasteel/yellow/side, +/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 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/hallway/primary/aft) +"bYH" = ( +/turf/closed/wall, +/area/engine/break_room) +"bYI" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 2 + }, +/area/hallway/primary/aft) +"bYJ" = ( +/turf/open/floor/plasteel/caution{ + dir = 9 + }, +/area/engine/break_room) +"bYK" = ( +/turf/open/floor/plasteel/caution{ + dir = 5 + }, +/area/engine/break_room) +"bYL" = ( +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/break_room) +"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 + }, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/aft) +"bYN" = ( +/turf/closed/wall, +/area/security/checkpoint/engineering) +"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) +"bYQ" = ( +/obj/machinery/suit_storage_unit/atmos, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bYR" = ( +/obj/structure/sign/warning/nosmoking, +/turf/closed/wall, +/area/engine/atmos) +"bYS" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bYT" = ( +/obj/machinery/computer/atmos_control/tank/toxin_tank{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bYU" = ( +/obj/machinery/portable_atmospherics/canister/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, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 2 + }, +/area/medical/virology) +"bYY" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 2 + }, +/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) +"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) +"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) +"bZm" = ( +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"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, +/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, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"bZy" = ( +/turf/open/floor/plasteel, +/area/engine/break_room) +"bZz" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/machinery/light_switch{ + pixel_x = -23 + }, +/obj/machinery/light{ + dir = 8 + }, +/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, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/engine/break_room) +"bZF" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Atmospherics APC"; + areastring = "/area/engine/atmos"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bZG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bZH" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/item/wrench, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bZI" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bZJ" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bZK" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/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) +"bZZ" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Testing Lab"; + dir = 1; + network = list("ss13","rd") + }, +/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/airless, +/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, +/turf/open/floor/plasteel/vault/telecomms/mainframe{ + dir = 8 + }, +/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" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/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" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/tcommsat/computer) +"cao" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/tcommsat/computer) +"cap" = ( +/obj/machinery/light, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/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 + }, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/hallway/primary/aft) +"caw" = ( +/obj/structure/table, +/obj/item/clothing/glasses/meson, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/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/machinery/requests_console{ + department = "Atmospherics"; + departmentType = 4; + name = "Atmos RC"; + pixel_x = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"caF" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Central"; + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Port to Filter" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"caG" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"caH" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/engine/atmos) +"caI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"caJ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/turf/open/space, +/area/space/nearstation) +"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{ + dir = 2 + }, +/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) +"caV" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"caW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"caX" = ( +/obj/machinery/sparker{ + id = "testigniter"; + pixel_x = -25 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"caY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"caZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"cba" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"cbb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"cbc" = ( +/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/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light, +/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/airless, +/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/airless, +/area/maintenance/port/aft) +"cbl" = ( +/obj/machinery/camera{ + c_tag = "Telecomms Server Room"; + dir = 4; + network = list("tcomms") + }, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/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{ + dir = 4; + name = "CE Office APC"; + areastring = "/area/crew_quarters/heads/chief"; + 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" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/heads/chief) +"cbq" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/mob/living/simple_animal/parrot/Poly, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/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 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 2 + }, +/area/hallway/primary/aft) +"cbu" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Engineering Foyer APC"; + areastring = "/area/engine/break_room"; + 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/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/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, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cby" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cbz" = ( +/obj/machinery/vending/wardrobe/atmos_wardrobe, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbB" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbC" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbD" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port to Filter" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbE" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbF" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/item/cigbutt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbG" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "CO2 Outlet Pump" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/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) +"cbT" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cbU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/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) +"cca" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/solar{ + id = "portsolar"; + name = "Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port/aft) +"ccb" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/solar{ + id = "portsolar"; + name = "Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port/aft) +"ccc" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/aft) +"ccd" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/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/mainframe, +/area/tcommsat/server) +"ccg" = ( +/obj/machinery/telecomms/message_server, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/area/tcommsat/server) +"cch" = ( +/obj/machinery/telecomms/receiver/preset_left, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/area/tcommsat/server) +"cci" = ( +/obj/structure/table, +/obj/item/multitool, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/tcommsat/computer) +"ccj" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/heads/chief) +"cck" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/heads/chief) +"ccl" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/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) +"ccu" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"ccv" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ccw" = ( +/turf/closed/wall/r_wall, +/area/engine/engineering) +"ccx" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ccy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ccz" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "N2 to Pure" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ccA" = ( +/obj/machinery/computer/atmos_control/tank/carbon_tank{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/atmos) +"ccB" = ( +/obj/machinery/portable_atmospherics/canister/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) +"ccP" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"ccQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/xenobiology) +"ccU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/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 = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/aft) +"ccY" = ( +/obj/structure/table, +/obj/item/kitchen/rollingpin, +/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/food/condiment/sugar, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"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/mainframe, +/area/tcommsat/server) +"cdd" = ( +/obj/machinery/telecomms/server/presets/supply, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/area/tcommsat/server) +"cde" = ( +/obj/machinery/telecomms/processor/preset_one, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/area/tcommsat/server) +"cdf" = ( +/obj/machinery/telecomms/server/presets/medical, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/area/tcommsat/server) +"cdg" = ( +/obj/machinery/computer/telecomms/monitor{ + dir = 4; + network = "tcommsat" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/tcommsat/computer) +"cdh" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cdi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cdj" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/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, +/turf/open/floor/plasteel/vault, +/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, +/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{ + dir = 8; + name = "Starboard Quarter Maintenance APC"; + areastring = "/area/maintenance/starboard/aft"; + 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 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdx" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdy" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdz" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "O2 to Pure" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdA" = ( +/obj/machinery/atmospherics/components/trinary/mixer/airmix{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdB" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cdC" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/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) +"cdR" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"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{ + dir = 8; + name = "Port Quarter Maintenance APC"; + areastring = "/area/maintenance/port/aft"; + 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/mainframe, +/area/tcommsat/server) +"cea" = ( +/obj/machinery/telecomms/server/presets/service, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/area/tcommsat/server) +"ceb" = ( +/obj/machinery/telecomms/bus/preset_one, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/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/mainframe, +/area/tcommsat/server) +"cee" = ( +/obj/structure/table, +/obj/item/radio/off, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/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, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cek" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/effect/turf_decal/delivery, +/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, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/engine/engineering) +"cet" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/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 + }, +/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{ + dir = 9 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"ceB" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/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/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/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) +"ceQ" = ( +/obj/structure/target_stake, +/obj/machinery/magnetic_module, +/obj/effect/landmark/blobstart, +/turf/open/floor/engine, +/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/item/wrench, +/obj/item/weldingtool, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/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 = 4; + pixel_x = 24 + }, +/obj/structure/closet/radiation, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/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, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/engine/engineering) +"cfh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side, +/area/engine/break_room) +"cfi" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2, +/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{ + dir = 2; + external_pressure_bound = 140; + pressure_checks = 0; + name = "killroom vent" + }, +/obj/machinery/camera{ + c_tag = "Xenobiology Kill Room"; + dir = 4; + network = list("ss13","rd") + }, +/turf/open/floor/circuit/killroom, +/area/science/xenobiology) +"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" + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/engine/engineering) +"cfB" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/heads/chief) +"cfI" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/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/portable_atmospherics/scrubber, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfO" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfP" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfQ" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfR" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfT" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfU" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/closed/wall, +/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{ + dir = 2; + name = "Incinerator APC"; + areastring = "/area/maintenance/disposal/incinerator"; + 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/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"cfZ" = ( +/obj/machinery/light_switch{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/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/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"cgb" = ( +/obj/structure/sign/warning/deathsposal{ + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/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/killroom, +/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{ + dir = 2; + external_pressure_bound = 120; + name = "killroom vent" + }, +/turf/open/floor/circuit/killroom, +/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, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cgp" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/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) +"cgt" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cgu" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance 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, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cgy" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cgz" = ( +/obj/structure/cable, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/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/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"cgJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"cgK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"cgL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/engine, +/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, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/heads/chief) +"cgQ" = ( +/obj/machinery/camera{ + c_tag = "Engineering East"; + dir = 8 + }, +/obj/machinery/vending/wardrobe/engi_wardrobe, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plasteel/red/side, +/area/engine/atmos) +"cgW" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/engine/atmos) +"cgX" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgY" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "N2 Outlet Pump" + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/engine/atmos) +"cgZ" = ( +/obj/machinery/computer/atmos_control/tank/oxygen_tank{ + dir = 1 + }, +/turf/open/floor/plasteel/blue/side, +/area/engine/atmos) +"cha" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/engine/atmos) +"chb" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "O2 Outlet Pump" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 6 + }, +/area/engine/atmos) +"chc" = ( +/obj/machinery/computer/atmos_control/tank/air_tank{ + dir = 1 + }, +/turf/open/floor/plasteel/arrival, +/area/engine/atmos) +"chd" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/arrival{ + dir = 10 + }, +/area/engine/atmos) +"che" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + 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" + }, +/turf/open/floor/plasteel/arrival{ + dir = 6 + }, +/area/engine/atmos) +"chg" = ( +/turf/open/floor/plating, +/area/engine/atmos) +"chh" = ( +/obj/machinery/atmospherics/components/unary/tank/toxins{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"chi" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"chj" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/floorgrime, +/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{ + dir = 2; + name = "atmospherics mix pump" + }, +/turf/open/floor/plasteel/floorgrime, +/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/floorgrime, +/area/maintenance/disposal/incinerator) +"chn" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"cho" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/circuit/killroom, +/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/killroom, +/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/killroom, +/area/science/xenobiology) +"cht" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"chu" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/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/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"chw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/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/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) +"chF" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"chG" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"chH" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"chI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/aft) +"chJ" = ( +/obj/machinery/power/tracker, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port/aft) +"chK" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/aft) +"chL" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/aft) +"chM" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/aft) +"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) +"chV" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/tank/internals/emergency_oxygen/engi{ + pixel_x = 5 + }, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/glasses/meson/engine, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"chX" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"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{ + dir = 1; + name = "Engineering APC"; + areastring = "/area/engine/engineering"; + 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) +"cii" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/clothing/suit/radiation, +/obj/item/clothing/head/radiation, +/obj/item/clothing/glasses/meson, +/obj/item/geiger_counter, +/obj/item/geiger_counter, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cij" = ( +/obj/machinery/modular_computer/console/preset/engineering, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/vault, +/area/engine/engineering) +"cik" = ( +/obj/machinery/computer/apc_control{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/heads/chief) +"cim" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cin" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/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) +"cip" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"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) +"cir" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"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, +/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/structure/reagent_dispensers/watertank, +/obj/item/extinguisher, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"ciz" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"ciA" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"ciB" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"ciC" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 + }, +/turf/open/space, +/area/space/nearstation) +"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/floorgrime, +/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, +/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) +"ciO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ciP" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/aft) +"ciQ" = ( +/obj/machinery/power/solar_control{ + dir = 4; + id = "portsolar"; + name = "Port Quarter Solar Control"; + track = 0 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"ciR" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Port Quarter Solar APC"; + areastring = "/area/maintenance/solars/port/aft"; + 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 + }, +/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 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/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, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/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 + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/heads/chief) +"cjh" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"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" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/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/item/weldingtool, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cjo" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel, +/area/construction) +"cjp" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"cjr" = ( +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"cjs" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/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/floorgrime, +/area/maintenance/disposal/incinerator) +"cjv" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/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/floorgrime, +/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-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/aft) +"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 + }, +/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 + }, +/turf/open/floor/plasteel/vault, +/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 + }, +/turf/closed/wall, +/area/science/misc_lab) +"cjX" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/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/magnetic_controller{ + autolink = 1; + pixel_y = 3 + }, +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/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/floorgrime, +/area/maintenance/disposal/incinerator) +"ckf" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/disposal/incinerator) +"ckg" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"ckh" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to MiniSat" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/floorgrime, +/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/floorgrime, +/area/maintenance/disposal/incinerator) +"ckj" = ( +/obj/item/cigbutt, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"ckk" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/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) +"ckn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/science/xenobiology) +"cko" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/maintenance/starboard/aft) +"ckp" = ( +/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/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{ + dir = 8; + name = "Starboard Quarter Solar APC"; + areastring = "/area/maintenance/solars/starboard/aft"; + 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) +"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" + }, +/turf/open/floor/plasteel/neutral{ + dir = 2 + }, +/area/crew_quarters/heads/chief) +"ckQ" = ( +/obj/structure/closet/cardboard, +/turf/open/floor/plasteel/floorgrime, +/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, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/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/floorgrime, +/area/maintenance/disposal/incinerator) +"cle" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 2 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"clf" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel/floorgrime, +/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/floorgrime, +/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/floorgrime, +/area/maintenance/disposal/incinerator) +"clj" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/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/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/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 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/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" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/engine_smes) +"clE" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/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, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/engine/engine_smes) +"clI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"clJ" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/engine/engineering) +"clM" = ( +/obj/structure/table, +/obj/item/crowbar/large, +/obj/item/storage/box/lights/mixed, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/engine/engineering) +"clN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/engine/engineering) +"clO" = ( +/obj/machinery/vr_sleeper, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/crew_quarters/fitness) +"clQ" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/engine/engineering) +"clR" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table, +/obj/item/book/manual/wiki/engineering_hacking{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/book/manual/wiki/engineering_construction, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/engine/engineering) +"clS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/rnd/production/techfab/department/security, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"clT" = ( +/obj/machinery/portable_atmospherics/canister/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, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"clW" = ( +/turf/open/floor/engine/o2, +/area/engine/atmos) +"clX" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/landmark/xmastree, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"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) +"cmc" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 2 + }, +/turf/closed/wall/r_wall, +/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) +"cml" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"cmn" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/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/structure/closet/toolcloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cms" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/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"; + track = 0 + }, +/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" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/engine_smes) +"cmB" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/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" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"cmG" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/closet/wardrobe/engineering_yellow, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/engine/engineering) +"cmL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"cmN" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/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{ + dir = 2 + }, +/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-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port/aft) +"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" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/engine_smes) +"cno" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/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) +"cnq" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/engine/engine_smes) +"cnr" = ( +/obj/machinery/door/window/southleft{ + base_state = "left"; + dir = 2; + icon_state = "left"; + 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, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/engine/engineering) +"cnv" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cnx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/engine, +/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{ + dir = 2; + 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/structure/disposalpipe/segment, +/obj/effect/spawner/lootdrop/maintenance, +/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) +"coc" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cop" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"coq" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/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 + }, +/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/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"coy" = ( +/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 = 5 + }, +/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) +"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) +"coK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/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) +"coM" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"coS" = ( +/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/effect/turf_decal/bot{ + dir = 2 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plasteel{ + dir = 2 + }, +/area/ai_monitored/security/armory) +"coZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/closet/secure_closet/engineering_electrical, +/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, +/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) +"cpe" = ( +/obj/docking_port/stationary/random{ + dir = 8; + id = "pod_lavaland2"; + name = "lavaland" + }, +/turf/open/space, +/area/space/nearstation) +"cpg" = ( +/obj/item/grenade/barrier{ + pixel_x = 4 + }, +/obj/item/grenade/barrier, +/obj/item/grenade/barrier{ + pixel_x = -4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"cph" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/space, +/area/space/nearstation) +"cpi" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/aft) +"cpj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/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) +"cpk" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 2 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cpl" = ( +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cpm" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cpn" = ( +/obj/machinery/light, +/obj/effect/turf_decal/stripes/line, +/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/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpt" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/storage/toolbox/electrical{ + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cpu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cpv" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cpx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cpy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cpA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"cpC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/bridge) +"cpD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cpE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"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/structure/lattice, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 2; + name = "Incinerator Output Pump" + }, +/turf/open/space, +/area/maintenance/disposal/incinerator) +"cpP" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/space, +/area/space/nearstation) +"cpQ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/space, +/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{ + dir = 2; + name = "SMES room APC"; + areastring = "/area/engine/engine_smes"; + pixel_y = -24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cpT" = ( +/obj/structure/table, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/obj/item/stock_parts/cell/high/plus, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"cpU" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/turf_decal/stripes/line, +/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, +/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/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) +"cpZ" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 5 + }, +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cqa" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cqb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqd" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqe" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqf" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqg" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Gas to Filter" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqh" = ( +/obj/effect/turf_decal/stripes/line, +/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/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqi" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqj" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door{ + id = "engsm"; + name = "Radiation Shutters Control"; + pixel_y = -24; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cql" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqm" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/engineering) +"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) +"cqq" = ( +/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/space/basic, +/area/space) +"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) +"cqu" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"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) +"cqA" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cqB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"cqC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqD" = ( +/obj/structure/sign/warning/radiation, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"cqE" = ( +/obj/effect/decal/cleanable/dirt, +/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) +"cqF" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"cqG" = ( +/obj/structure/rack, +/obj/item/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"cqJ" = ( +/obj/structure/cable, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/aft) +"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" + }, +/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/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cqR" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cqS" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plating, +/area/engine/engineering) +"cqT" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cqU" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cqY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"cqZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/engine/supermatter) +"cra" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Gas to Filter" + }, +/obj/machinery/airalarm/engine{ + dir = 4; + pixel_x = -23 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/engine/supermatter) +"crb" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + icon_state = "pump_map"; + name = "Gas to Chamber" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/engine/supermatter) +"crc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"crd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"crh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cri" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"crk" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/aft) +"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/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"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) +"crs" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"crt" = ( +/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/supermatter) +"cru" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"crv" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"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{ + dir = 2 + }, +/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" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/aft) +"crC" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/aft) +"crD" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/aft) +"crE" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/aft) +"crF" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/aft) +"crG" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/aft) +"crH" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"crI" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"crJ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"crK" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"crL" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"crM" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"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) +"crT" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"crU" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/space, +/area/space/nearstation) +"crV" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/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) +"crZ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"csa" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering) +"csb" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/space, +/area/space/nearstation) +"csc" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/space, +/area/maintenance/aft) +"csd" = ( +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cse" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"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) +"csi" = ( +/obj/structure/transit_tube/curved/flipped{ + dir = 1 + }, +/turf/open/space, +/area/space/nearstation) +"csj" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"csk" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"csl" = ( +/obj/structure/transit_tube/curved{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"csm" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/maintenance/aft) +"csn" = ( +/obj/structure/transit_tube/horizontal, +/turf/open/space, +/area/space/nearstation) +"cso" = ( +/obj/structure/lattice, +/obj/structure/transit_tube/crossing/horizontal, +/turf/open/space, +/area/space/nearstation) +"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/floorgrime, +/area/maintenance/disposal/incinerator) +"csr" = ( +/obj/machinery/button/ignition{ + id = "Incinerator"; + pixel_x = -6; + pixel_y = -24 + }, +/obj/machinery/atmospherics/components/trinary/filter/flipped, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"css" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/space, +/area/space/nearstation) +"csu" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"csv" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"csx" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/space, +/area/space/nearstation) +"csy" = ( +/obj/structure/table, +/obj/item/weldingtool, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"csA" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/supermatter) +"csD" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"csE" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/aft) +"csH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"csI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"csM" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/transit_tube/crossing/horizontal, +/turf/open/space, +/area/space/nearstation) +"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) +"csP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"csR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"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) +"csY" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/aft) +"csZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard/aft) +"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) +"ctd" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/space, +/area/space/nearstation) +"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/airless, +/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, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/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) +"ctv" = ( +/turf/closed/wall/r_wall, +/area/space/nearstation) +"ctw" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/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/plasteel/airless/solarpanel, +/area/solar/starboard/aft) +"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, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"ctN" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"ctP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/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 = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/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{ + dir = 4; + name = "MiniSat Foyer APC"; + areastring = "/area/ai_monitored/turret_protected/aisat_interior"; + pixel_x = 27 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"ctW" = ( +/obj/machinery/computer/teleporter, +/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{ + pixel_y = -32 + }, +/obj/item/storage/box/donkpockets, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"cud" = ( +/obj/machinery/turretid{ + control_area = "/area/ai_monitored/turret_protected/aisat_interior"; + enabled = 1; + icon_state = "control_standby"; + 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/ai_status_display{ + pixel_y = -32 + }, +/obj/structure/table, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/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, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/service) +"cun" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + 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 = 8; + pixel_x = -24 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 2 + }, +/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 + }, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 1 + }, +/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 + }, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 4 + }, +/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 = 4; + 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 + }, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 4 + }, +/area/ai_monitored/turret_protected/aisat/atmos) +"cuC" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/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"; + enabled = 1; + icon_state = "control_standby"; + name = "Atmospherics Turret Control"; + pixel_x = -27; + req_access = null; + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 1 + }, +/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"; + enabled = 1; + icon_state = "control_standby"; + name = "Service Bay Turret Control"; + pixel_x = 27; + req_access = null; + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 4 + }, +/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 + }, +/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 + }, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 1 + }, +/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{ + dir = 8; + name = "MiniSat Atmospherics APC"; + areastring = "/area/ai_monitored/turret_protected/aisat/atmos"; + 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{ + dir = 4; + name = "MiniSat Service Bay APC"; + areastring = "/area/ai_monitored/turret_protected/aisat/service"; + 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 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat/atmos) +"cuZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/mob/living/simple_animal/bot/floorbot, +/turf/open/floor/plasteel/darkblue/corner, +/area/ai_monitored/turret_protected/aisat/atmos) +"cva" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"cvb" = ( +/obj/machinery/ai_status_display, +/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 + }, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/darkblue/corner, +/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"; + enabled = 1; + icon_state = "control_standby"; + 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, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"cvg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/mob/living/simple_animal/bot/cleanbot, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat/service) +"cvh" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/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{ + anyai = 1; + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_y = 28 + }, +/obj/item/radio/intercom{ + broadcasting = 0; + freerange = 1; + listening = 1; + name = "Common Channel"; + pixel_x = -27; + pixel_y = 5 + }, +/obj/item/radio/intercom{ + anyai = 1; + broadcasting = 0; + 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{ + anyai = 1; + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_y = 28 + }, +/obj/item/radio/intercom{ + broadcasting = 0; + freerange = 1; + listening = 1; + name = "Common Channel"; + pixel_x = 27; + pixel_y = 5 + }, +/obj/item/radio/intercom{ + anyai = 1; + broadcasting = 0; + 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) +"cvF" = ( +/obj/structure/lattice, +/obj/machinery/camera{ + c_tag = "MiniSat External NorthWest"; + dir = 8; + network = list("minisat"); + start_active = 1 + }, +/turf/open/space, +/area/space/nearstation) +"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) +"cvK" = ( +/obj/structure/lattice, +/obj/machinery/camera{ + c_tag = "MiniSat External NorthEast"; + dir = 4; + network = list("minisat"); + start_active = 1 + }, +/turf/open/space, +/area/space/nearstation) +"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 = 8; + 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{ + dir = 4; + name = "MiniSat Chamber Hallway APC"; + areastring = "/area/ai_monitored/turret_protected/aisat/hallway"; + 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 = 4; + 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{ + 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) +"cwy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table_frame, +/obj/item/wirerod, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"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/ai_status_display{ + 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{ + dir = 2; + name = "AI Chamber APC"; + areastring = "/area/ai_monitored/turret_protected/ai"; + 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) +"cwM" = ( +/obj/structure/rack, +/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/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"cwT" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Escape Pod 2"; + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cwV" = ( +/obj/docking_port/stationary/random{ + dir = 8; + id = "pod_lavaland1"; + name = "lavaland" + }, +/turf/open/space, +/area/space/nearstation) +"cxk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"cxn" = ( +/obj/structure/lattice, +/obj/effect/landmark/carpspawn, +/turf/open/space, +/area/space/nearstation) +"cxA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"cxE" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 13; + id = "ferry_home"; + name = "port bay 2"; + width = 5 + }, +/turf/open/space/basic, +/area/space) +"cxG" = ( +/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) +"cxJ" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/security/processing) +"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/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock" + }, +/turf/open/floor/plating, +/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/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/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) +"cyd" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 11; + height = 22; + id = "whiteship_home"; + name = "SS13: Auxiliary Dock, Station-Port"; + width = 35 + }, +/turf/open/space/basic, +/area/space) +"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" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + req_access_txt = "24" + }, +/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) +"cyT" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 5; + height = 7; + id = "supply_home"; + name = "Cargo Bay"; + width = 12 + }, +/turf/open/space/basic, +/area/space) +"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) +"czE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"czF" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"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) +"czI" = ( +/obj/item/wrench, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space/nearstation) +"czJ" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/maintenance/disposal/incinerator) +"czK" = ( +/turf/closed/wall, +/area/security/vacantoffice) +"czN" = ( +/obj/docking_port/stationary/random{ + dir = 4; + id = "pod_lavaland4"; + name = "lavaland" + }, +/turf/open/space, +/area/space/nearstation) +"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) +"czP" = ( +/obj/structure/chair/stool/bar, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"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) +"cAf" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"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) +"cAl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"cAm" = ( +/obj/machinery/power/supermatter_crystal/engine, +/turf/open/floor/engine, +/area/engine/supermatter) +"cAo" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cAp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Cooling Loop to Gas" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cAq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cAr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Gas to Mix" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cAs" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cAt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cAu" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/emitter/anchored{ + dir = 4; + state = 2 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"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{ + dir = 8 + }, +/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{ + dir = 2; + name = "Head of Personnel APC"; + areastring = "/area/crew_quarters/heads/hop"; + 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, +/mob/living/simple_animal/hostile/lizard{ + name = "Wags-His-Tail"; + real_name = "Wags-His-Tail" + }, +/turf/open/floor/plasteel, +/area/janitor) +"cAN" = ( +/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/maintenance/fore/secondary) +"cAP" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"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{ + broadcasting = 0; + freerange = 1; + listening = 1; + name = "Common Channel"; + pixel_x = -27; + pixel_y = -9 + }, +/obj/item/radio/intercom{ + anyai = 1; + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_y = -31 + }, +/obj/item/radio/intercom{ + anyai = 1; + broadcasting = 0; + 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) +"cAU" = ( +/obj/structure/lattice, +/obj/machinery/camera{ + c_tag = "MiniSat External SouthWest"; + dir = 8; + network = list("minisat"); + start_active = 1 + }, +/turf/open/space, +/area/space/nearstation) +"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) +"cAX" = ( +/obj/structure/lattice, +/obj/machinery/camera{ + c_tag = "MiniSat External SouthEast"; + dir = 4; + network = list("minisat"); + start_active = 1 + }, +/turf/open/space, +/area/space/nearstation) +"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"; + dir = 2; + 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) +"cBf" = ( +/obj/machinery/camera{ + c_tag = "MiniSat External South"; + dir = 2; + network = list("minisat"); + start_active = 1 + }, +/turf/open/space, +/area/space/nearstation) +"cBg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/hydroponics) +"cBh" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"cBi" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/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/machinery/camera{ + c_tag = "Locker Room Toilets"; + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) +"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) +"cBu" = ( +/obj/machinery/ai_status_display{ + 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-2" + }, +/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{ + dir = 2; + 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/chamber) +"cBF" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cBG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cBH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/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/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/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) +"cBR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"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/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cBU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cBV" = ( +/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, +/turf/open/floor/plasteel, +/area/security/main) +"cBZ" = ( +/obj/structure/table/wood, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"cCa" = ( +/obj/item/clothing/head/hardhat, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"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) +"cCh" = ( +/obj/item/bedsheet/red, +/mob/living/simple_animal/bot/secbot/beepsky{ + name = "Officer Beepsky" + }, +/turf/open/floor/plating, +/area/security/processing) +"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) +"cCl" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"cCm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"cCn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Detective's Office APC"; + areastring = "/area/security/detectives_office"; + pixel_x = 24 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/port) +"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) +"cCB" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cCC" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cCD" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Mix to Engine" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cCE" = ( +/obj/machinery/atmospherics/pipe/simple/green/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) +"cCG" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, +/turf/open/space, +/area/space/nearstation) +"cCH" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/space, +/area/space/nearstation) +"cCI" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/space, +/area/space/nearstation) +"cCJ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/space, +/area/space/nearstation) +"cCP" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 + }, +/turf/open/space, +/area/space/nearstation) +"cCQ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"cCS" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"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) +"cDe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cDg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDh" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/mechanical, +/obj/item/flashlight, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/pipe_dispenser, +/turf/open/floor/engine, +/area/engine/engineering) +"cDi" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/clothing/suit/radiation, +/obj/item/clothing/head/radiation, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDj" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/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) +"cDo" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cDp" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDs" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDv" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDw" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Atmos to Loop" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cDz" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/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) +"cDC" = ( +/obj/item/wrench, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cDD" = ( +/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) +"cDE" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "External Gas to Loop" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cDF" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "External Gas to Loop" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cDG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"cDH" = ( +/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 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cDI" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 + }, +/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) +"cDY" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 9 + }, +/turf/open/space, +/area/space/nearstation) +"cDZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cEa" = ( +/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) +"cEd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Engineering Supermatter Port"; + dir = 4; + network = list("ss13","engine") + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cEe" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"cEf" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"cEg" = ( +/obj/machinery/status_display, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"cEh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"cEi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Engineering Supermatter Starboard"; + dir = 8; + network = list("ss13","engine") + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cEk" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cEl" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"cEr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cEs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Gas to Cooling Loop" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cEt" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/supermatter) +"cEu" = ( +/obj/machinery/camera{ + c_tag = "Supermatter Chamber"; + dir = 2; + network = list("engine"); + pixel_x = 23 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cEv" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/power/rad_collector/anchored, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cEw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cEx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cEy" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/machinery/power/rad_collector/anchored, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cEz" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cEA" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/supermatter) +"cEB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cEC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Gas" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cED" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cEE" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/space, +/area/space/nearstation) +"cEK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cEL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cEM" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/item/tank/internals/plasma, +/turf/open/floor/plating, +/area/engine/supermatter) +"cET" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/supermatter) +"cEU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"cEW" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cFb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + icon_state = "pump_map"; + name = "Cooling Loop Bypass" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFe" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/machinery/power/rad_collector/anchored, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cFh" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/machinery/power/rad_collector/anchored, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cFi" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/camera{ + c_tag = "Research Division South"; + dir = 8 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"cFj" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/supermatter) +"cFk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix Bypass" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFm" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"cFn" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/space, +/area/space/nearstation) +"cFo" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"cFu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/engine/engineering) +"cFw" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"cFy" = ( +/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) +"cFz" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cFA" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cFI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFJ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"cFK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Engineering Supermatter Aft"; + dir = 2; + network = list("ss13","engine"); + pixel_x = 23 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cFP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFT" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cFU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGd" = ( +/obj/structure/closet/crate/bin, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGe" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGf" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8; + filter_type = "n2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGg" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGh" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/engine, +/area/engine/engineering) +"cGi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/engine, +/area/engine/engineering) +"cGj" = ( +/obj/structure/table, +/obj/item/pipe_dispenser, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGk" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGl" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cGs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cGt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGu" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGx" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/engine/engineering) +"cGC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/atmospherics/components/binary/valve/digital/on{ + dir = 4; + name = "Output Release" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cGE" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cGH" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cGI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Laser Room"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cGK" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cGL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"cGM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cGR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cGT" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGU" = ( +/obj/structure/reflector/double/anchored{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGV" = ( +/obj/structure/reflector/box/anchored{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cGZ" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cHa" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cHb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cHc" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cHd" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cHe" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cHg" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cHj" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/emitter/anchored{ + dir = 8; + state = 2 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cHn" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cHo" = ( +/obj/structure/reflector/single/anchored{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cHp" = ( +/obj/structure/reflector/single/anchored{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cHr" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"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{ + dir = 2; + 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{ + icon_state = "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 + }, +/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 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/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 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/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/roboticist, +/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, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/science/robotics/lab) +"cIg" = ( +/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/space/basic, +/area/space) +"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) +"cMm" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"cMB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cMC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/computer/security/telescreen/engine{ + dir = 8; + pixel_x = 30 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/engineering) +"cMD" = ( +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"cMH" = ( +/turf/open/floor/engine, +/area/engine/supermatter) +"cMN" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/supermatter) +"cMQ" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/solar{ + id = "starboardsolar"; + name = "Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/aft) +"cNa" = ( +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "starboardsolar"; + name = "Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/aft) +"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{ + dir = 1; + name = "Central Maintenance APC"; + areastring = "/area/maintenance/central"; + 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{ + dir = 4; + name = "Starboard Maintenance APC"; + areastring = "/area/maintenance/starboard"; + 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) +"cOT" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"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) +"cSz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/chapel/main) +"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/mainframe, +/area/tcommsat/server) +"cSF" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/telecomms/mainframe, +/area/tcommsat/server) +"cSG" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"cSH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cSI" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cSJ" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cSK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"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" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/heads/chief) +"cSM" = ( +/obj/machinery/computer/station_alert, +/obj/item/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/vault, +/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 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/engineering) +"cSX" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/engine/engineering) +"cSY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/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" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"cTf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Engineering"; + departmentType = 4; + name = "Engineering RC"; + pixel_y = 30 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"cTD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Central Maintenance APC"; + areastring = "/area/maintenance/central/secondary"; + 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 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/construction/mining/aux_base) +"cTF" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cTI" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/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{ + dir = 4; + name = "Morgue Maintenance APC"; + areastring = "/area/maintenance/department/medical/morgue"; + 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) +"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) +"cVb" = ( +/turf/closed/wall, +/area/hallway/secondary/service) +"ddf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"dgS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_x = -20 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"dqu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"dvO" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airalarm/mixingchamber{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing/chamber) +"dwb" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"dyk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"dCN" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"dGF" = ( +/turf/closed/wall/r_wall, +/area/science/mixing/chamber) +"dMC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/mixing/chamber) +"dMZ" = ( +/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) +"eit" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"erp" = ( +/obj/machinery/button/door{ + id = "telelab"; + name = "Test Chamber Blast Doors"; + pixel_x = 25; + req_access_txt = "47" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"eyF" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"eyM" = ( +/obj/machinery/mineral/ore_redemption{ + input_dir = 2; + output_dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"eBP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"eHI" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"eRu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/science/lab) +"eRz" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) +"eUr" = ( +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + name = "test chamber blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"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) +"fcG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/science/mixing/chamber) +"flc" = ( +/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, +/obj/item/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"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/hydrofloor, +/area/hallway/secondary/service) +"fsD" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/science/misc_lab) +"fsQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"fvi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"fBE" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/turf/open/floor/plating, +/area/science/circuit) +"fGf" = ( +/obj/machinery/smartfridge/disks{ + pixel_y = 2 + }, +/obj/structure/table, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"fGF" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"fXM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"gbq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/construction) +"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) +"gjl" = ( +/turf/closed/wall, +/area/quartermaster/warehouse) +"glg" = ( +/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/mixing) +"gsz" = ( +/obj/machinery/camera{ + c_tag = "Fitness Room South"; + dir = 1 + }, +/obj/machinery/vr_sleeper, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/crew_quarters/fitness) +"gwd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"gGE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"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) +"gNQ" = ( +/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{ + dir = 4; + name = "Research Lab APC"; + areastring = "/area/science/lab"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"gWd" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/construction) +"gXs" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"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) +"gZY" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"hcE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Cargo Warehouse APC"; + areastring = "/area/quartermaster/warehouse"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"hox" = ( +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/science/research) +"hBY" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"hYR" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"hZk" = ( +/turf/open/floor/plasteel, +/area/science/circuit) +"ick" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"ijc" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ipA" = ( +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"isc" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"itG" = ( +/obj/item/beacon, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"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) +"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) +"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/hydrofloor, +/area/hallway/secondary/service) +"jlm" = ( +/obj/machinery/rnd/production/techfab/department/cargo, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"jAD" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"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) +"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) +"jHW" = ( +/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/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"jMF" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"jMY" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/item/stack/cable_coil, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"jNA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"jVl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"khb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/table, +/obj/item/kitchen/rollingpin, +/turf/open/floor/plasteel/hydrofloor, +/area/hallway/secondary/service) +"khB" = ( +/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) +"knx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"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) +"kwK" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"kxC" = ( +/obj/machinery/computer/rdconsole/experiment{ + dir = 1 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/science/explab) +"kzT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/science/mixing/chamber) +"kGA" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/chemist, +/obj/machinery/button/door{ + id = "chemistry_shutters"; + name = "Chemistry shutters"; + pixel_x = 24; + pixel_y = -28; + req_one_access_txt = "5; 33" + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 4 + }, +/area/medical/chemistry) +"kLM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"kMT" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"kOw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"kPd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hallway/secondary/service) +"kQk" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical/morgue) +"kQq" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"kRC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/science/research) +"kSb" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"lhu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"ltd" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"ltG" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/science/misc_lab) +"lxd" = ( +/obj/machinery/light_switch{ + pixel_x = -20 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"lAB" = ( +/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{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"lCi" = ( +/obj/docking_port/stationary/public_mining_dock{ + dir = 8 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"lLp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"lMg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"lNB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"lQm" = ( +/obj/machinery/camera{ + c_tag = "Circuitry Lab"; + dir = 4; + network = list("ss13","rd") + }, +/obj/structure/table/reinforced, +/obj/item/integrated_electronics/analyzer, +/obj/item/integrated_electronics/wirer, +/obj/item/integrated_electronics/debugger, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"lQG" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/research/glass{ + name = "Test Chamber"; + req_access_txt = "47" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"lST" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/item/gun/energy/laser/practice, +/obj/item/gun/energy/laser/practice, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"mdr" = ( +/obj/machinery/nuclearbomb/beer, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"mjr" = ( +/obj/machinery/vending/wardrobe/bar_wardrobe, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"mBm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"mBv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "Output to Waste" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"mDn" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"noK" = ( +/obj/structure/girder, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"nxv" = ( +/obj/machinery/power/apc{ + name = "Construction Area APC"; + areastring = "/area/construction"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/construction) +"nzh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"nEP" = ( +/obj/structure/closet/l3closet/scientist{ + pixel_x = -2 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"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) +"nQI" = ( +/obj/machinery/light_switch{ + pixel_x = -23 + }, +/obj/structure/closet/secure_closet/chemical, +/obj/item/radio/headset/headset_med, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"nRG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"nWm" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/science/mixing) +"nWA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Air Supply Maintenance"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"nWM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel, +/area/science/mixing) +"nXP" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine, +/area/science/explab) +"nXU" = ( +/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) +"olh" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"oDF" = ( +/obj/machinery/light, +/turf/open/floor/plating, +/area/engine/engineering) +"oHU" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"oUq" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"oXS" = ( +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel/white, +/area/science/research) +"pij" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"piD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/science/mixing) +"ptw" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"pDu" = ( +/obj/structure/table/reinforced, +/obj/item/integrated_circuit_printer, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"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{ + freerange = 0; + frequency = 1485; + listening = 1; + name = "Station Intercom (Medbay)"; + pixel_x = 30 + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"pLn" = ( +/obj/machinery/conveyor/inverted{ + dir = 5; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"pOJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = 8; + pixel_y = 28 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"pWN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"qas" = ( +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"qea" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"qeQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"quT" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space/basic, +/area/space/nearstation) +"qKl" = ( +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_x = 30; + receive_ore_updates = 1 + }, +/obj/structure/table/reinforced, +/obj/item/multitool, +/obj/item/screwdriver, +/obj/structure/table/reinforced, +/obj/item/multitool, +/obj/item/screwdriver, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"qQC" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"qQH" = ( +/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/aft) +"qVQ" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"rcD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/mixing/chamber) +"rfW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"rmX" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/beer, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"rHZ" = ( +/obj/structure/rack, +/obj/item/wrench, +/obj/item/crowbar, +/turf/open/floor/plasteel/floorgrime, +/area/science/misc_lab) +"rKc" = ( +/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, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel, +/area/science/lab) +"rKP" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/construction) +"rOY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/floorgrime, +/area/science/misc_lab) +"rYJ" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"sjr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"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) +"sxs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table, +/obj/item/shovel/spade, +/turf/open/floor/plasteel/hydrofloor, +/area/hallway/secondary/service) +"sHk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/floorgrime, +/area/science/misc_lab) +"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) +"sOs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance/abandoned, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"sSW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"sWR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/computer/bounty{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"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/security/main) +"sYh" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel/white, +/area/science/research) +"tal" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/hallway/secondary/service) +"tbd" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/research/glass{ + name = "Test Chamber"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + name = "test chamber blast door" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"tfg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"tjy" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"trb" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"tDw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"tKG" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"tMl" = ( +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"tQg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/starboard) +"tXL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"tXU" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/science/research) +"tYi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"udp" = ( +/obj/item/crowbar/large, +/obj/structure/rack, +/obj/item/flashlight, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ueT" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"uhH" = ( +/obj/item/wrench, +/obj/item/weldingtool, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/structure/rack, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ulo" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"upN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Toxins Lab South"; + dir = 1; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"uvi" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"uzl" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"uCq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/science/misc_lab) +"uCO" = ( +/obj/machinery/light, +/obj/structure/table/reinforced, +/obj/item/screwdriver, +/obj/item/multitool, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"uES" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"uHw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/science/research) +"uHA" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"uIv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/research) +"uPT" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"uUy" = ( +/turf/open/floor/plasteel, +/area/science/mixing) +"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) +"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) +"vdl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/science/research) +"vmV" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"voe" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"vqI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"vxh" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"vzp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"vBV" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Experimentation Lab APC"; + areastring = "/area/science/explab"; + pixel_x = 26 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"vCb" = ( +/obj/machinery/rnd/production/techfab/department/service, +/turf/open/floor/plasteel/hydrofloor, +/area/hallway/secondary/service) +"vCt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/science/mixing) +"vGb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/research{ + name = "Experimentation Lab"; + req_access_txt = "47" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/science/explab) +"vHt" = ( +/obj/structure/closet/l3closet/scientist{ + pixel_x = -2 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/science/misc_lab) +"vPE" = ( +/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, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"wkN" = ( +/turf/closed/wall, +/area/science/circuit) +"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) +"wrp" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hallway/secondary/service) +"wBd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/hallway/secondary/service) +"wHy" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 1; + icon_state = "mixer_off"; + name = "plasma mixer" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"wHz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"wQy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Testing Lab Maintenance"; + req_access_txt = "47" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"wUY" = ( +/obj/structure/table, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/hydrofloor, +/area/hallway/secondary/service) +"wXw" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/circuit) +"wZy" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/research) +"xaZ" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"xhV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/construction) +"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) +"xmh" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"xEu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"xHR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"xIa" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) + +(1,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(2,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(3,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(4,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(5,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(6,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(7,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(8,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(9,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(10,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(11,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(12,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(13,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(14,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(15,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(16,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(17,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(18,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(19,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(20,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(21,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(22,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(23,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(24,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(25,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(26,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(27,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(28,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(29,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cpe +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cwV +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(30,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(31,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(32,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(33,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaf +aaa +aaa +cqq +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cqq +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(34,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaf +aaf +aaa +aaf +arB +asE +cyb +asE +arB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +arB +asE +cyb +asE +arB +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(35,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +auO +auP +cwT +aAC +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aAC +auO +auP +cxY +arB +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aAC +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(36,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apJ +apN +apN +apN +apN +apN +apN +apN +apN +apN +apJ +avP +iEJ +asE +arB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +arB +asE +iEJ +avP +arB +aaa +aaa +aaa +aaa +aaa +arB +awW +awW +asE +arB +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(37,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +apJ +apN +apN +apN +apN +apN +apN +apN +apN +apN +apJ +awY +ayk +awW +aAD +awW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +awW +awW +awW +aQG +aRX +arB +aaa +aaa +aaa +aaa +aaa +arB +awY +ayk +awW +aAD +awW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(38,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +apJ +apN +apN +apN +apN +apN +apN +apN +apN +apN +apJ +awZ +ayl +azy +auP +cIh +aaa +aaa +aaa +aaa +aaa +aaa +aaa +azy +auP +cIh +ayl +aRY +awW +aaa +aaa +aaa +aaa +aaa +awW +awZ +ayl +beK +auP +cyt +cyd +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(39,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +apJ +apN +apN +apN +apN +apN +apN +apN +apN +apN +apJ +awZ +ayk +awW +awW +awW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +awW +awW +awW +awV +aRY +awW +aaa +aaa +aaa +aaa +aaa +awW +awZ +ayk +awW +awW +awW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(40,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apJ +apN +apN +apN +apN +wph +apN +apN +apN +apN +apJ +awZ +cqr +azz +aAF +awW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +awW +aOf +azz +aPu +aRY +awW +aaa +aaa +aaa +aaa +aaa +awW +awZ +aym +azz +aAF +awW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(41,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apJ +apN +apN +apN +apN +apN +apN +apN +apN +apN +apJ +awZ +aIK +ayl +aAE +awW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +awW +aOe +ayl +ayl +aRY +awW +aaa +aaa +aaa +aaa +aaa +awW +awZ +ayl +ayl +aAE +awW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(42,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apJ +apN +apN +apN +apN +apN +apN +apN +apN +apN +apJ +awZ +aIK +ayl +aAH +awW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +awW +aOh +ayl +ayl +aRY +awW +aaa +aaa +aaa +aaa +aaa +awW +awZ +ayl +ayl +bgi +awW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(43,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +apJ +apN +apN +apN +apN +apN +apN +apN +apN +apN +apJ +awZ +cry +azA +aAG +awW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +awW +aOg +azA +aQH +aRY +awW +aaa +aaa +aaa +aaa +aaa +awW +awZ +ayn +azA +bgh +awW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(44,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apJ +apN +apN +apN +apN +lCi +apN +apN +apN +apN +apJ +awZ +crz +awW +awW +awW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +awW +awW +awW +awV +aRY +awW +aaa +aaa +aaa +aaa +aaa +awW +awZ +ayk +awW +awW +awW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(45,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apJ +apJ +apJ +ajZ +asF +atp +asF +asF +asF +asF +apJ +axh +aIK +azy +auP +cIh +aaa +aaa +aaa +aaa +aaa +aaa +aaa +azy +auP +cIh +ayl +aRY +awW +aaa +aaa +cxE +aaa +aaa +awW +awZ +ayl +beL +auP +cyu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(46,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +apJ +asH +atI +atI +arE +ayq +ayq +auc +avp +axI +ayp +awW +aAD +awW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +awW +awW +awW +aQG +aRX +arB +aaa +aWa +aXI +awW +aaa +arB +awY +ayk +awW +aAD +awW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(47,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +asF +asI +auQ +auQ +auQ +auQ +aCX +aub +aLu +axH +ayo +azB +awW +aaa +aaa +aaa +aaa +cIg +aaa +aaa +aaa +aaa +awW +aPt +aPu +aRY +arB +awW +awW +auP +awW +awW +arB +awZ +aym +azB +awW +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(48,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(49,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aoV +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(50,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaf +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 +asE +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(51,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aag +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(52,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +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 +aUQ +czK +bhN +bcl +beQ +pLn +bhI +bjb +bkz +blS +bnv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(53,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(54,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaS +aaS +aaS +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(55,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +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 +aUP +aUO +aXL +aXZ +aUO +czK +bbe +beO +beR +bgj +bgj +bjc +cAF +cAF +bja +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaa +aaf +aaa +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(56,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aba +aaS +aaS +aaf +aaf +aaf +aaa +aaa +aaa +alU +aoS +amC +aom +ank +asc +atq +auZ +bsU +axf +amC +alU +auT +aBI +aDf +aEK +aFM +aHy +ayl +aKk +aLA +aNf +aNf +aLA +aQD +aSd +czK +aUQ +aUW +aXL +aXZ +baJ +czK +bbe +beO +beU +bgk +bhL +bjc +cAF +blV +beO +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaf +chJ +aaf +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(57,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abY +aaa +aaf +aaa +aaf +aaa +aaf +aaa +acy +aaa +aaf +aaa +aiS +aaa +aaS +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaS +aaS +aaS +aaS +aaf +aaf +aaa +chI +aaa +aaf +aaf +aaS +aaS +aba +aaS +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(58,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abY +aaa +acV +adv +adZ +aaa +acV +adv +adZ +aaa +acV +adv +adZ +aaa +aaS +aaf +aaf +aaf +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaa +aaa +aaf +aaa +aaf +aaa +aaa +chI +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(59,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +abY +aaf +acV +adu +adZ +aaa +acV +adu +adZ +aaa +acV +adu +adZ +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaf +cca +cca +cca +cca +cca +aaa +chK +aaa +cca +cca +cca +cca +cca +aaf +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(60,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abY +aaa +acV +adu +adZ +aaf +acV +adu +adZ +aaf +acV +adu +adZ +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaa +ccc +ccX +ccX +ccX +ccX +cgz +chL +ciP +cjH +cjH +cjH +cjH +cnl +aaa +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(61,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +acV +adu +adZ +aaa +acV +adu +adZ +aaa +acV +adu +adZ +aaf +aaf +aaf +aaf +aaf +aaa +aaa +aaa +aaf +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaS +aaf +ccb +ccb +ccb +ccb +ccb +aaa +chL +aaa +ccb +ccb +ccb +ccb +ccb +aaf +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(62,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaS +aaS +aaf +aaa +acV +adu +adZ +aaa +acV +adu +adZ +aaa +acV +adu +adZ +aaa +aaf +aaa +ajV +alR +alR +alR +alR +alU +alU +alU +aqP +arJ +alU +avb +aaH +bOi +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaS +aaa +aaa +aaa +aaf +aaa +aaa +aaa +chL +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aba +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(63,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaa +aaf +aaa +aaa +aaa +adw +aaa +aaa +aaa +adw +aaa +aaa +aaa +adw +aaa +aaa +ajV +ajV +ajV +alQ +amy +ang +alR +aoj +amC +apP +amC +arH +alU +aaH +bNb +aaf +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaS +aaf +cca +cca +cca +cca +cca +aaa +chL +aaa +cca +cca +cca +cca +cca +aaf +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(64,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaf +abs +abZ +abZ +acW +ady +ady +ady +ady +ady +ady +ady +ady +ady +ady +ajq +ajW +akB +alh +alT +amA +ani +anI +aol +aol +aol +aol +arL +alU +avU +avb +bOi +atO +asK +azF +aAU +aBG +aAQ +aAQ +aAQ +aBM +aAQ +aKn +aLE +aNl +aOm +aPB +aQM +aQM +aTv +aUT +aPz +aXQ +aXQ +aXQ +aXQ +aXQ +aXQ +aXQ +aXQ +bhQ +bjj +bkF +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaS +aaa +ccc +ccX +ccX +ccX +ccX +cgz +chL +ciP +cjH +cjH +cjH +cjH +cnl +aaa +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(65,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaa +aaf +aaa +aaa +aaa +adx +aaa +aaa +aaa +adx +aaa +aaa +aaa +adx +aaa +aaa +ajV +ajV +ajV +alS +amz +anh +anH +aok +anJ +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 +aZt +aXQ +aZt +aXQ +aZt +bhQ +bjj +bkF +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaS +acy +ccb +ccb +ccb +ccb +ccb +aaa +chL +aaa +ccb +ccb +ccb +ccb +ccb +aaf +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(66,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aba +aaS +aaf +aaa +acV +adz +adZ +aaa +acV +adz +adZ +aaa +acV +adz +adZ +aaa +aaf +aaa +ajV +alR +alR +alR +alR +aom +amC +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 +aXQ +bdJ +aXQ +bgr +bhQ +bjj +bkF +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aba +aaa +aaa +aaa +aaf +aaa +aaa +aaa +chL +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(67,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +acV +adz +adZ +aaa +acV +adz +adZ +aaa +acV +adz +adZ +aaf +aaf +aaa +aaa +alU +alF +anj +anJ +anl +aoU +alU +amC +arM +alU +atT +asO +avV +atO +ayw +atN +aAV +aBQ +aDh +aDo +aFQ +aHe +aIN +aKp +aLE +aNm +aOl +aPA +aQN +aQN +aQN +aUn +aTy +aWy +aYe +aZw +aZw +bbq +bct +bfa +bfa +bhQ +bjk +bkE +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaS +aaf +cca +cca +cca +cca +cca +aaa +chL +aaa +cca +cca +cca +cca +cca +aaf +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(68,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaa +acV +adz +adZ +aaf +acV +adz +adZ +aaf +acV +adz +adZ +aaa +aaf +aaf +aaf +alU +alF +anl +amC +alU +alU +alU +amC +alU +alU +apP +alU +alU +atP +auV +axK +aAN +aBL +aDd +aDd +aFR +aDd +aDd +aJZ +aLk +aNo +aOo +aPA +aQQ +aQN +aSV +aUo +aUX +aXp +baO +aZo +baw +bcO +baw +cBn +bgs +bhQ +bjk +bkF +aaa +aaa +aaa +aaa +aaa +aaa +cyT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aoV +bZm +aoV +aoV +aoV +aaa +aaS +aaa +ccc +ccX +ccX +ccX +ccX +cgz +chL +ciP +cjH +cjH +cjH +cjH +cnl +aaa +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(69,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaf +acV +adz +adZ +aaa +acV +adz +adZ +aaa +acV +adz +adZ +aaf +aaf +aaa +aaa +alU +alU +ank +alU +alU +aoV +alU +amC +amC +amC +arN +alU +avW +amC +ayx +atO +aAL +aBQ +aDb +aDo +aFY +aDo +aDo +aKp +aLE +aLE +aOn +aPA +aQP +aQN +aTx +aUV +aWo +aXQ +aXQ +aXQ +aXQ +aXQ +aXQ +aXQ +aXQ +bhQ +bjk +aPz +aaa +aaa +boI +bqi +brJ +boI +brJ +bvS +boI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aoV +bVz +aaf +aaf +aoV +aaa +aaS +aaf +ccb +ccb +ccb +ccb +ccb +aaa +chL +aaa +ccb +ccb +ccb +ccb +ccb +aaf +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(70,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaa +acV +adA +adZ +aaa +acV +adA +adZ +aaa +acV +adA +adZ +aaa +aaS +aaa +aaa +alU +amD +anm +amC +ali +aoV +ali +amC +alU +asO +atL +alU +avX +axf +amC +atO +aAY +aBQ +aDl +bxk +aFS +aDo +aIX +aBQ +aLE +aLE +aOp +aPA +aQR +aQN +aTA +aUq +aWq +aXs +aYH +aZx +bbO +aPA +bdM +aPz +bgt +bhS +bjk +aPz +aaa +aaa +blW +bqj +brK +blW +brK +bvT +blW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aag +bVz +aag +aag +aoV +aaa +aaS +aaa +aaa +aaf +aaa +aaf +aaa +aaa +chL +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(71,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaS +aaf +aaf +alU +amC +amC +amC +ali +aaf +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 +aWq +aXr +aZx +cBh +bbN +aPA +bdL +aPz +bgt +bhR +bjk +aZE +blW +blW +blW +bqi +cyD +blW +cyD +bvS +blW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aaf +bVz +aoV +aag +aoV +aaa +aaS +aaS +aaS +aaf +aaf +aaf +aaf +aaf +chM +aaf +aaf +aaf +aaf +aaf +aaS +aaS +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(72,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaS +aaS +aaS +aaS +aba +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaa +aaa +alU +amE +ann +amC +alU +aoV +ali +amC +alU +arN +atU +alU +atU +amC +atJ +atO +aAY +aBQ +aDn +aDo +aDo +aHD +aIZ +aBQ +aLE +aLE +aOq +aPD +aQT +aQT +aTC +aUs +aUY +aXv +aYS +aZx +bbO +aPA +bdM +aPz +aSg +bhT +bjk +aZE +blY +bnw +boJ +bql +brL +btr +bnw +bvV +blW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aaf +bVz +aaf +aag +aoV +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aaa +cfx +chO +cfx +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(73,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alU +alU +alU +ank +alU +aoV +alU +amC +amC +amC +amC +alU +aqO +amC +atJ +atO +aAY +aBQ +aDm +aDo +aDo +aDo +aIY +aBQ +aLE +aLE +aOl +aPA +aQS +aQN +aTB +aUr +aWq +aXt +aPA +aPA +aPA +aPA +aPA +aPz +bel +bfI +bgq +bhY +bkj +bqm +bqm +bps +bjr +bjr +buB +bvU +aZE +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaa +aaa +aag +aaa +bVx +caf +aoV +aag +aaf +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aaa +cfx +chN +cfx +aaa +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(74,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alU +amF +alU +amC +alU +aaf +alU +alU +alU +alU +amC +alU +atM +axl +auV +azG +aAY +aBQ +aDp +aDo +aFU +aDo +aJb +aKp +aLE +aLE +aOl +aPE +aQV +aQN +aSi +aUu +aWq +aXw +aZB +aZB +aZB +aZB +aPA +bfc +bew +bfM +bjl +bkG +bkp +bmj +bjt +cCo +bjt +bjt +biq +bvV +blW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bCq +bCq +bCq +bLv +bCq +aoV +cbj +aoV +aag +aaf +aaf +bCq +bCq +bCq +bCq +bCq +bCq +cfx +cfx +cyK +cfx +cfx +aaa +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(75,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alU +alU +alU +amC +alU +aaf +aaH +alU +arO +alU +amC +avc +atO +axk +ayy +ayy +aAO +aBN +aDe +aDe +aFT +aDe +aIU +aKa +aLH +aLE +aOl +aPA +aQU +aQN +aQN +aUt +aWq +aXw +aZA +aZA +aZA +aZA +aPA +aWv +aYb +aZE +aZE +aZE +bkn +bmh +bjr +bmb +bjr +bjr +buC +bvV +blW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bCq +bJP +bCq +bSn +bCq +bCq +cbj +bLv +bXv +bLv +aaf +bCq +cAy +cAB +ccY +cAD +cAH +cfw +cgA +chP +ciQ +cfw +aaa +aaa +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(76,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ali +anK +ali +aaH +atR +alU +alU +alU +atW +atW +atO +axn +alU +aoX +atJ +aBQ +aDq +aDo +aFZ +aHE +aJc +aKs +aLK +aLK +aOr +aPA +aQX +aQN +aQN +aUv +aWp +aXA +aYX +aYX +aYX +bbs +bcw +bfd +bgw +aZE +bjn +bjr +bkt +bmh +boK +bpz +boK +bjr +bkt +bvV +blW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bCq +bPS +aad +bPS +bPS +bCq +cbk +bLv +bHE +bLv +aaf +bCq +cAA +bHE +bHE +ccZ +cAK +cfw +cgC +chR +ciS +cfw +aaa +aaa +aaa +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(77,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alU +amC +alU +aaH +aaf +aaf +aaH +alU +ali +ali +atO +axm +ayz +ayz +ayz +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aLJ +aLE +aOl +aPA +aQW +aQW +aTD +aQW +aUZ +aXx +aYU +aYU +aYU +bbr +bcu +bfe +aYb +aZE +bjm +bjr +bjr +bmh +boK +bjr +boK +bjr +bjr +bvV +bxu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bLv +bPR +bRc +bSo +bTs +bCq +bVy +bLv +cyE +bLv +bLv +bCq +bHE +cAC +ccZ +cAE +ceV +cfw +cgB +chQ +ciR +cfw +aag +aag +aag +aaa +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(78,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ali +aKY +ali +asC +aaf +aaH +aaf +aoV +aoV +aaf +avY +axo +ayB +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaa +aKu +aLM +aLF +aOs +aPG +aPG +aPG +aPG +aPG +aPA +aPA +aPA +aPA +aPA +aPA +aPA +aWv +aYb +aZE +bjp +bjr +bjr +bmh +boK +bjr +cBp +bjr +buB +bvV +bxu +bxu +bxx +bxu +bxu +bDi +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bCq +bPS +bRf +bSo +bTu +bCq +bVB +bHE +bHE +bYu +bZk +bCq +cTF +bCq +bCq +bCq +bCq +cfw +cgE +chS +cfw +cfw +bCq +bXv +bCq +aaa +aaa +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(79,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaf +ali +amC +ali +asC +aaH +aaf +aoV +aoV +aoV +aoV +avY +axo +ayA +aaf +aBa +aBa +aBa +aBa +aBa +aBa +aaf +aKt +aLL +bDe +aOl +aPF +aQY +aSk +aTE +aPG +aWu +aYa +aZD +aZD +hcE +aZD +aZD +bff +bfk +aZE +bjo +bjr +bjr +bmh +boK +bjr +boK +bjr +bjr +bub +bxu +bvF +bzP +bAS +bxu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bLv +bPT +bRe +bSo +bTt +bCq +bVA +bWw +bXw +bYt +bZj +bCq +bHE +bCq +bSq +cdW +ceW +bCq +cgD +bUs +bHE +cjI +bCq +clA +bCq +aaa +aaa +aaa +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(80,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ali +ali +alU +alU +amC +alU +alU +alU +aaH +aaf +aoV +aaf +aaf +avY +axo +ayA +aaa +aBa +aBT +aDs +aEN +aGb +aBa +aaa +aKt +aLN +aLE +aOl +aPH +aRa +aRa +aTG +aPG +aWw +aYc +aZF +aZF +aZF +aZF +aZF +aZF +bgy +aZE +bjr +bjr +ama +bmh +bjr +bjr +bjr +bjr +bjr +bvX +bxu +byA +bzR +byd +bxx +aaa +aaa +aaa +aaa +bJc +aaa +aaa +aaa +aaa +bCq +bPV +bCq +bCq +bTw +bCq +bVD +bWy +bXx +bYw +bZj +bYy +bHE +bTz +bHE +bUs +ceY +bCq +bHE +bUs +bHE +bLu +bCq +cyE +bCq +aaa +aaa +aaf +aaa +bCq +bCq +bLv +bLv +bLv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(81,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ali +alV +amG +ano +amC +aon +aoW +alU +aqQ +aqQ +aqQ +aqQ +aqQ +avZ +axp +ayC +azH +aBb +aBS +aDr +aEM +aGa +aHF +aJd +aKv +aLN +aLE +aOl +aPF +aQZ +aRa +aTF +aPG +aSX +aWC +baS +aZI +baS +baS +bdS +bdU +ckQ +gjl +bjq +bjr +bjr +bmh +bjr +bjr +bjr +bjr +bjr +bjr +bxw +byz +bzQ +byc +bxx +aaa +aaa +bGi +bGi +bJb +bGi +bGi +aoV +aoV +bCq +bPU +bHE +bSp +bTv +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 +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(82,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ali +aKY +amC +anp +amC +amC +amC +ank +aqR +aqR +aGh +aqR +aqR +awb +axo +ayA +aaa +aBa +aBV +alu +aEM +aGd +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 +aaf +aaf +bGi +bHz +byE +bKk +bGi +aoV +aoV +bCq +bPW +bCq +bCq +bTy +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(83,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ali +alW +amH +ano +anL +aoo +aoX +alU +aqQ +aqQ +aqQ +aqQ +aqQ +awa +axq +ayD +azI +aBc +aBU +aDt +aEO +aGc +aHF +aJd +aKb +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 +aaa +aaa +bGi +bHy +byE +bKj +bGi +aoV +aoV +bCq +bHE +bHE +bSq +bTx +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(84,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ali +ali +alU +alU +ali +alU +alU +alU +aaa +aaa +aaa +aaa +aag +avY +axo +ayA +aaa +aBa +aBW +aDv +aEP +aGe +aBa +aaa +aKt +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 +aaa +bxy +bxy +bxy +bJd +bKm +bxy +aaf +aaf +bCq +bPY +cOw +bCq +bCq +bCq +bCq +bCq +bCq +bYy +bCq +bCq +bLv +bCq +bCq +bCq +bCq +bLv +bUs +bLv +aaa +bCq +ckv +bHE +bCq +aaa +aaa +aaf +aaa +bCq +bCq +bCq +bCq +bCq +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(85,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +avY +axo +ayA +aaf +aBa +aBa +aBa +aBa +aBa +aBa +aaf +aKt +aLN +aMS +aOi +aLE +aPK +aSl +aTH +aPK +aWz +aWC +gjl +gjl +gjl +bcT +gjl +gjl +gjl +aZE +bju +biv +bmf +bmt +boN +bqo +brO +btt +buE +bvZ +bxu +bxx +bwT +bym +bxu +bxy +bxy +bGj +bHA +bHA +bKl +bxy +aaH +aaH +bCq +bPX +bRg +bRg +bCq +bHE +bVG +bHE +bHE +bHE +bLv +aaf +aoV +aoV +aoV +aoV +aoV +bLv +bUs +bLv +aaa +bLv +bJf +ccd +bCq +aaa +aaa +aaf +aaa +aaa +aaf +aaf +cig +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(86,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +avY +axs +ayF +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaa +aKx +aLN +aMS +aOi +aLE +aRc +aSm +aTJ +aPK +cCl +aYh +cCm +cCm +cCm +cCn +aPz +bdW +aSg +aZE +bgz +biT +boU +bmP +buF +bbR +bbR +btu +bbR +bOL +bxy +byF +bwW +bGm +bCo +bDk +bEK +byE +byE +byE +byE +bGi +aaf +aaf +bLv +bQa +bHE +bHE +bCq +bHE +bLv +bLv +bLv +bLv +bLv +aoV +aoV +aoV +aoV +aoV +aaf +bLv +bUs +bLv +aaf +cjJ +cjJ +cjJ +cjJ +cjJ +cjJ +cjJ +cjJ +cjJ +cjJ +aaa +crn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(87,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +arP +avd +avZ +axr +ayE +ayE +ayE +ayE +ayE +ayE +ayE +ayE +ayE +ayE +aLl +aMT +aOi +aPL +aPK +aSm +aTI +aPK +aWB +cCj +apd +apd +bbU +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 +aoV +aoV +bLv +bPZ +bHE +bHE +cTF +bHE +bLv +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aoV +bLv +bUs +bLv +aaa +cjJ +ckw +clC +cmy +cnm +cnL +cov +cpj +cpS +cjJ +aaa +crn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(88,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +arP +ave +awa +axu +ayH +ayH +ayH +ayH +ayH +ayH +aFV +ayH +ayH +aKy +aLn +aMU +aOw +aPN +aPK +aSn +aTK +aPK +apd +cCj +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 +byE +byE +bKp +bGi +aaf +aaf +bLv +bHE +bHE +bSs +bCq +bHE +bLv +aoV +aoV +aoV +bcU +aaf +aaH +cCa +aoV +aoV +aoV +bLv +bUs +bLv +aaa +cjJ +cky +clE +cmA +cno +cnN +cox +cpl +cpU +cjJ +aaf +crn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(89,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +adB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +arP +arP +arP +cya +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 +bLG +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 +aaH +aaH +bCq +bHE +bRh +bLu +bCq +bHE +bLv +aaf +aaf +aoV +aoV +aaH +bdV +aaH +aaf +aaf +aaf +bLv +bUs +bLv +aaf +cjJ +ckx +clD +cmz +cnn +cnM +cow +cpk +cpT +cjJ +aaa +crn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(90,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abc +abc +abc +afu +abc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +anO +aaa +aaa +aaa +aaa +arP +asQ +aqR +aqR +avZ +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 +bml +bwe +bwe +bwd +bwY +byJ +bwe +bAc +bBI +bGn +bGn +bGn +bKq +bxy +aaf +aaf +bCq +bOK +bCq +bCq +bCq +bHE +bLv +aoV +aoV +aoV +aoV +cjn +bSu +aaH +aoV +aoV +aoV +bLv +bUs +bLv +aaa +cjJ +cky +clG +cmB +cnq +cnP +coz +cpn +cjJ +cjJ +aaa +crn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(91,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abc +aea +aeH +aft +abc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aiU +aln +aiU +aaa +aiU +anN +aiU +aaa +aaa +aaa +arP +asP +aqR +aqR +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 +aaa +bLv +bHE +bLv +aoV +aoV +aoV +aoV +aoV +aaH +aaf +aoV +aoV +aoV +bLv +bUs +bLv +aaa +cjJ +ckz +clF +cmy +cnp +cnO +coy +cpm +cjJ +aaf +aaf +crn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaT +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(92,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abc +abu +abu +abu +abc +abc +aec +aeJ +afw +abc +abc +aaf +aaa +aaf +aaf +aaf +aaf +aiU +alp +aiU +aaa +aiU +alp +aiU +aaf +aaf +aaf +arP +arP +arP +arP +avZ +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 +bLu +bHE +bHE +bHE +bHE +bLv +aaf +bLv +bUt +bLv +aaf +aaf +aoV +aoV +aoV +aaH +aoV +aoV +aaf +aaf +bLv +bUs +bLv +aaf +cjJ +cjJ +cjJ +cjJ +cjJ +cnR +coB +cjJ +cjJ +aaa +aaa +crn +aaf +aaT +aaT +aaT +aaT +aaT +aaT +aaT +aaT +aaT +aaa +aaf +ctv +aaT +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(93,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abb +abt +aca +acz +acX +adC +aeb +aeI +afv +agf +abc +aaf +aaa +aaa +aiT +aiT +aiV +akG +cxJ +aiU +amK +aiU +cxP +aoq +aiV +aiT +aiT +arP +asR +aqR +arP +awc +axt +ayG +azL +aBf +aBY +aDw +aES +aJh +aHv +aJh +aKA +aLN +aMS +aOz +aLE +aPQ +aSa +aSr +aSr +apd +aYZ +bLE +aqW +aqW +bLE +apd +beA +bqp +cNG +cNJ +bLF +aZK +bbR +bbR +bqt +cBq +bbR +bbR +bwd +bxC +byK +cBv +byO +bwe +bAo +bTE +bGo +bHC +bHE +bCq +bCq +bLv +bLv +bHE +bLv +bCq +aaa +bLv +bUs +bLv +aoV +aoV +aoV +aoV +aoV +aaf +aoV +aoV +aoV +aoV +bCq +bUs +bCq +aaa +aaf +aaa +aaa +aaf +cjJ +cnQ +coA +cpo +cjJ +aaa +aaa +crn +aaf +aaT +ctv +ctv +ctv +ctv +ctv +ctv +ctv +aaT +aaa +aaf +ctv +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(94,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abe +abw +acc +acB +acZ +adE +aee +aeL +afy +agh +abc +aaf +aaa +aaf +aiT +ajs +akb +akI +akI +amc +aiT +ant +akI +aos +aiT +apR +cCh +arP +asT +aqR +avf +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 +aaa +aaf +bLv +bHE +bLv +aaa +aaa +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 +aaf +aaf +cig +aaf +aaT +aaT +aaT +aaT +aaT +aaT +aaT +aaT +aaT +aaf +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(95,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abd +abv +acb +acA +acI +adD +aed +aeK +afx +agg +abc +aaf +aaa +aaa +aiU +ajr +aka +akH +alq +amb +aiU +ans +alq +aor +apb +alp +aqS +arP +asS +aqR +arP +awd +axv +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 +ccu +ciT +bCq +bSs +ceY +ccw +ccw +cnR +cgT +cjJ +ccw +ccw +ccw +ccw +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(96,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaH +aai +aai +abg +aby +aby +aby +aby +aby +aeg +aeN +afA +afA +afA +aaf +aaa +aaa +aiU +aju +akd +akK +als +ame +amM +anv +als +aou +aiT +aiT +aiT +arP +arP +arP +arP +awf +axx +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 +bGq +bLw +bGq +bGq +bGq +bLw +bGq +bGq +bTD +bUx +bVI +bVI +bVI +bVI +bVI +bVI +bVI +bVI +bVI +bVI +bVI +bTA +bEP +cdi +bCq +bCq +bHE +bHE +cmD +cnr +cnU +chD +cpq +cpV +cqw +cqO +crp +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aaT +aaT +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(97,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aai +aai +aai +aaU +abf +abx +acd +acC +ada +adF +aef +aeM +afz +aai +aai +aai +aai +aai +aai +ajt +akc +akJ +alr +amd +amL +anu +alq +aot +apc +apS +aqT +apS +apS +apS +apS +awe +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 +cEl +cEE +cEl +cFm +csx +cFm +cFm +csx +csv +aaa +aaa +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(98,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aah +aai +aai +aai +aai +aaI +aaM +aat +aat +aat +ace +aat +aat +adH +aei +aeO +afJ +acd +agL +agK +agK +aiB +aai +ajw +akf +aiX +aiX +aiX +aiX +aiV +anP +aiT +cCi +cCi +cCi +cCi +cCi +cCi +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 +aKF +aLX +aJq +aJq +bBi +aJw +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaa +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 +crJ +crT +crJ +cFn +css +csx +csx +css +csb +aaf +aaf +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(99,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaf +aai +aan +aaw +aaB +aat +aaJ +aat +abh +aat +acd +abK +acY +adG +aeh +aeO +afI +agl +agH +ags +ags +aho +acd +ajv +ake +agj +afL +aez +ahU +aiX +anz +aov +cCi +air +aqY +arU +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 +boX +bqv +bqv +bqv +bqv +bwg +aJw +aJq +aJq +bBi +aJw +aaa +bEU +bGr +bGr +bGr +bKr +aaa +aaf +aaa +aaa +aaf +aaf +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 +crZ +crT +crZ +cFo +css +cFm +cFm +css +csv +aaa +aaa +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(100,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aak +aap +aay +aaD +aat +aat +aat +aat +abA +acd +acd +acd +acd +aek +aeU +afI +acd +agI +ahq +ahV +aho +acd +ajy +akh +afK +ajc +afM +afN +aiX +anz +aov +cCi +aqX +arR +asj +asU +ats +atY +auo +axy +ayN +azE +aAW +aCa +aDB +aDI +azW +azW +azW +ayW +aLX +aJq +aOE +aJn +aaa +aaa +aJn +aJs +aJq +aYn +aZM +aZu +bbY +bcY +bdX +bbX +bgH +bie +bjB +bkW +bmp +bjz +bpa +bqy +cBr +bqy +buK +bqy +aJw +aJq +aJq +bBi +aJw +aaf +bEW +bGt +bHG +bJh +bEW +aaf +aaf +aaa +aaa +bKv +bLB +bES +bMj +bAx +bVI +bWF +bXC +bXC +bZp +cak +bWB +bWB +bWB +cec +bVI +cay +ccw +chY +ciX +cjM +ckB +ckB +ckB +ccw +cnY +coH +cgR +cgR +cqx +cqR +crp +crJ +crT +crJ +cFn +css +csx +csx +css +csb +aaf +aaf +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(101,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaf +aaj +aao +aax +aaC +aat +aat +adO +aat +abz +acd +acE +add +adF +aej +aeQ +afD +acd +agJ +ahp +ahp +aiC +adF +ajx +akg +agj +adL +ahr +aih +aiX +anz +aov +ape +arT +aqV +arS +apU +atu +cCi +awg +axy +ayM +azs +aAR +aBP +aDA +aEW +aGi +aHB +aEZ +aBt +aJs +aJq +aOE +aJn +aaa +aaa +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 +aaa +bEV +bGs +cBC +bJg +bKs +aaa +aaf +aaf +aaf +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 +cqQ +ccw +crH +crT +crZ +cFo +css +cFm +cFm +css +csv +aaa +aaa +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(102,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aal +aar +aay +aaF +aat +aaO +aaW +aat +abB +acf +abM +acG +adI +aem +aeO +afG +acd +agK +agK +ail +aiE +aiW +ajA +akj +agj +agj +agj +aiX +aiX +anQ +aov +cCi +apU +arT +arT +asn +atK +auq +avs +axz +ayP +azU +aBo +aCg +azW +aEX +aEZ +aEZ +aEZ +vbD +aJs +aJq +bJx +aJn +aaa +aaa +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 +bBi +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 +crJ +crT +crJ +cFn +css +csx +csx +css +csb +aaf +aaf +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(103,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaf +aaj +aaq +aay +aaE +aaJ +aaN +aaV +aat +aat +acd +abL +adb +acd +ael +aeO +afF +agj +agj +agj +agj +agj +agj +ajz +aki +akM +alv +amf +amQ +anw +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 +aaa +aaa +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 +bFa +bHH +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 +cpt +cpZ +cig +cqS +ccw +crH +crT +crZ +cFo +css +cFm +cFm +css +csv +aaa +aaa +aaT +ctv +aaT +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(104,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aal +aat +aay +aat +aat +aaJ +aat +aat +abD +acd +acd +acd +acd +aen +aeO +afH +agj +agM +ahu +ahW +aiD +agj +auj +akl +akO +alx +alx +amR +anw +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 +aaa +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 +cDo +cgR +cqA +cqT +csg +crJ +crU +csb +cFn +css +csx +csx +css +csb +aaf +aaf +aaT +aaT +aaT +gXs +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(105,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaf +aaj +aas +aaz +aat +aat +aat +aat +aat +abC +acd +acH +adc +acd +aeo +aeS +afH +agj +agN +aht +ain +aid +agj +aiZ +akk +akN +alw +amg +amR +anw +anR +aow +apg +aqZ +aqZ +aqZ +apW +aqZ +avh +awh +axz +ayO +azE +aBp +aCc +aDF +ayL +aGq +aHO +aJl +ayW +aJq +aJq +aOE +aJn +aaa +aPR +aTR +aVe +aWK +aYq +aZO +aZC +baK +bbC +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 +coK +cpu +cMm +ccw +ccw +ccw +crK +cEK +csa +csj +csa +csa +cGr +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(106,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aam +aav +aav +aav +aaL +aaQ +aaY +aav +abE +acg +acJ +ade +adJ +aep +aeT +afH +agj +ahs +ahP +ahP +aiF +agj +aja +ajG +akQ +agj +agj +amS +anx +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 +aaa +aPR +aTT +aVg +aWN +aYs +aZQ +bbi +bde +bcd +bcd +bcd +bcd +bcd +bcd +bcd +bms +bnS +bpf +bqC +brZ +btE +bnS +bwl +bxG +byR +bnM +bBl +bCs +bDz +bFa +bFa +bHH +bFa +bFa +bFa +bCs +bNL +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 +chF +ciO +cqc +cqc +cqc +cEd +cEr +cEL +cFb +cFu +cFI +cGd +cGs +cGr +ccw +ccw +ccw +ccw +ccw +ccw +aaa +eRz +aaT +eRz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(107,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaf +aai +aau +aaA +aaG +aaK +aaP +aaX +aat +aat +acd +acD +acY +adG +aeq +aeV +acd +agj +ahm +ahD +aiw +aiO +agj +ajD +akm +akP +aly +amh +amR +anw +anz +aov +aph +aob +ara +arV +apZ +aph +aph +awg +axA +ayR +azR +aBr +azW +afO +azW +agm +aBt +aaa +aJn +aLY +aLY +aOF +aPR +aPR +aPR +aTS +aVf +aWM +aYr +aZP +bbh +bcc +bdd +bbX +bfr +bgM +bif +aZM +aZM +bmr +bmr +bmr +bmr +bmr +bmr +bmr +bmr +bmr +byQ +aJq +aJq +bCs +bDy +bFb +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 +cgx +coM +cpv +cqb +cqb +cqb +cqb +cEs +cqb +cqb +cAp +cqb +cAo +cGt +cgx +jMY +csd +cHa +csd +uhH +ccw +aaa +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(108,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aai +aai +aai +aai +aai +aai +aai +abj +abG +acd +acd +acd +acd +aeP +afC +agk +agF +agP +agP +agP +agP +aiz +ajg +akl +akR +alx +alx +amR +anw +anz +aov +aph +aoc +ata +arY +ata +auh +aph +awg +axA +ayT +azR +azW +azW +aBt +azW +aio +aBt +aaa +aJn +aJq +aJq +aOE +aPT +aRj +aSv +aTV +aVi +aWP +aYu +aYt +bbk +bbk +bbk +bbk +bfs +aZM +aZM +aZM +aaf +aaf +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aJn +aXf +aJq +byV +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 +cgK +cDg +cDp +cqe +cqB +cqB +cEe +csP +cAl +cFc +cAq +cFJ +cSH +cGu +cGH +fsQ +fsQ +cGR +csd +csd +ccw +aaa +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(109,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaa +aaf +aai +abi +abF +ach +acK +adf +acd +aer +afB +agi +agD +agO +agO +agO +agO +aiy +ajb +ajF +akN +alw +ami +amR +anw +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 +aaf +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aJn +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 +cgJ +chG +cpx +cqd +cDC +cqU +cEf +cEt +cEM +csA +cEg +cFK +cGe +cGv +cGI +cGS +cHb +cHg +cHn +oDF +ccw +aaf +aaT +ctv +aaT +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(110,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaR +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +agn +agR +agn +agR +agn +ajc +ajI +ako +akQ +agj +agj +amS +any +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 +bgO +bgO +bgO +bmu +bgO +bgO +bgO +bgO +bsb +aaf +aaf +aaf +aJn +aXf +aJq +aJq +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 +cDh +cpy +cDv +cDD +cqU +cMD +cEu +cEz +cEz +cMD +cFL +cGf +kQq +cMm +ciZ +cHc +cAu +cAu +ciZ +ccw +aaa +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(111,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaf +aaT +aaf +aaZ +abm +cpg +acv +adi +adi +aaZ +aeW +agQ +ahv +ahQ +aiI +aiH +ajB +akm +akP +aly +amj +amR +anw +anz +aov +aph +aph +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 +bgN +bgN +bgN +bmv +bkI +bnT +bpg +bqD +bsa +bgO +buP +bwm +bxH +byS +aJq +aMh +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 +chV +cpx +cqf +cqD +cMD +crs +cEv +cEv +cFe +cMD +cFM +czE +kQq +ccw +cGT +csd +csd +csd +csd +ccw +aaf +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(112,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaf +aaT +aaa +aaZ +abH +acl +ajC +acL +adi +aaZ +agp +agT +ahx +ahS +aiK +ajc +ajI +akl +akT +aww +alx +amR +anw +anz +aov +apk +anw +anw +anw +anw +aVh +avj +awl +axC +ayY +azZ +azZ +azZ +azZ +azZ +aGt +aHQ +aJr +aJq +aMc +aNy +aOE +aPS +aRn +aSz +aTY +aVl +aWT +aYx +aZR +bbm +bbm +bdh +bee +bfv +bgN +bih +big +bii +bgN +bnV +bph +bqF +bsd +btG +buQ +bwn +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 +cgL +chX +cpx +cqh +cqF +cra +crI +cEw +cEw +cEw +cFw +cFN +csH +csR +cMm +cGU +csd +csd +cHo +csd +ccw +aaa +aaT +ctv +aaT +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(113,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaf +abY +aaa +aaZ +abn +ack +adk +adK +cqG +aeX +ago +agS +agQ +ahR +aiJ +ajc +ajI +akk +akS +alw +amk +amR +anw +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 +bgN +big +bgN +bkZ +bgN +bnU +bph +bqE +bsc +btF +bph +bsc +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 +cMm +chX +cpx +cqg +cqE +cqZ +crt +cMH +cAm +cMH +cMN +cFO +cSI +cSI +cMm +cGV +csd +cGV +noK +csd +ccw +aaa +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(114,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaf +aaT +aaa +aaZ +abJ +ack +acM +adQ +cwM +aeZ +agr +agU +ahy +ahX +aiL +ajc +ajI +akq +akQ +agj +agj +amS +anx +anz +aoz +apm +aqd +anA +asa +atd +anA +avk +awk +axE +ayZ +aAa +aBu +aAa +aAa +aAa +aGu +aHR +aJt +aJq +aMe +aNA +aOE +aPV +aRp +aSB +aTZ +aVn +aWV +aYz +aZR +bbm +bbm +bdh +bef +bfv +bgN +bii +big +bih +bgN +bnV +bph +bqF +bsf +btG +buS +bwp +bxK +bwh +bAh +bBs +bzG +bAP +bCp +bDp +bFq +bGO +bHl +bHS +bLI +bLI +bOR +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 +cgL +chX +cpx +cqj +cSG +crb +cru +cEx +cEx +cEx +cAP +cFP +csI +cAt +cMm +csd +csd +csd +cHp +csd +ccw +aaf +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(115,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaf +aaT +aaa +aaZ +abI +ack +coS +aet +cxA +aeY +agt +agt +ahz +aie +aiN +ajc +ajI +akp +akU +alz +aml +amT +anw +anz +aoz +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 +bgN +bgN +bgN +bjy +bmw +bnW +bpi +bqG +bse +bij +buR +bwo +bxJ +bwb +aJq +bBr +bCv +bCv +bCv +bCv +bCv +bJq +bKw +bLH +bRq +bNO +bOQ +bQf +bRq +bRq +bTK +bUE +bUE +bWM +bXJ +bYH +bYH +bYH +bYH +bVg +bXn +bYG +cfb +cfF +cfb +cik +cjg +cjU +cfb +clM +cfz +cgR +ccw +cii +cpx +cqi +cMD +cAP +crv +cEy +cEy +cFh +cMD +cFM +czE +kQq +ccw +cGT +csd +csd +csd +csd +ccw +aaf +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(116,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaf +abY +aaa +aaZ +abQ +ack +adj +arc +blT +agq +cml +agV +cxk +aig +aiM +ajc +ajI +akp +akV +alB +amn +amV +anw +anz +aoz +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 +bij +bij +bij +bgR +bij +bij +bij +bij +bsg +aaf +aaf +aaf +aJn +aJq +aJq +bBu +bCv +bAT +bDL +bDq +bCv +bJs +bKy +bLK +bLK +bLK +bOT +bQi +bRs +bSC +bLK +bUG +bVO +bWO +bXK +bYH +bZz +caw +bYH +bVo +bXq +bZe +cfb +cfH +cSL +cim +cim +ceo +cfb +cfa +cje +cgR +ccw +cDi +cDr +cDw +cDE +cEa +cMD +cEz +cEz +cEz +cMD +cFR +cSJ +kQq +cMm +ciZ +cHd +cHj +cHd +ciZ +ccw +aaa +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(117,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaf +abY +aaa +aaZ +abN +ack +bkA +acF +aes +avB +amN +agt +awN +aHp +aIF +ajc +ajI +akp +akQ +alA +amm +amU +anw +anT +aoA +apn +aqe +arf +arf +arf +arf +arf +arf +arf +arf +arf +arf +arf +arf +arf +anF +ahn +aJn +aJn +aJq +aJq +aOE +aPS +aRq +aSC +aUa +aVo +aWW +aYA +aYz +bbn +bcg +aZU +beg +aYB +aaf +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aJn +aJq +aJq +bBt +bCv +bDH +bFf +bGB +bCv +bJs +bKy +bLJ +bLJ +bNP +bOS +bQh +bRr +bSB +bTL +bUF +bVN +bWN +bLK +bYJ +bRi +bZy +cbu +bVm +bXp +bYO +cfc +cgO +ccj +cBM +cdU +cSZ +ckL +cmF +cje +cgR +cMm +chX +cpD +cDw +cDF +cEa +cEg +cEA +cET +cFj +cEf +cFS +cGg +mBv +cGI +cGS +cHe +cHe +cHr +oDF +ccw +aaf +aaT +ctv +aaT +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(118,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaf +aaT +aaf +aaZ +aci +acm +cpA +adg +aeu +alt +agu +agX +ahB +aij +agn +aje +ajJ +akr +akX +alC +alC +amX +anz +anz +aoB +aod +aqe +arf +aqa +atf +arf +aqa +atf +arf +aqa +atf +arf +aqa +atf +arf +anF +ahn +aaa +aJn +aJq +aJq +aOE +aPX +aRs +aSE +aUc +aVm +aWY +aYC +aYA +bbp +bbp +bbp +bbp +bfz +aZV +aZV +aZV +aaf +aaf +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aJn +aJq +aJq +aXf +bCv +bDK +bFi +bGE +bCv +bJs +bKy +bLM +bLM +bNQ +bOV +bQk +bRt +bSD +bTM +bUH +bVQ +bWN +bXM +bYL +cew +bTh +cdt +bVq +bXI +bZg +bZD +cbq +ccl +cdm +cio +cjY +ceq +clQ +cje +cgR +cMm +cDj +cDs +cql +cDG +cDG +cEh +cEB +cEU +cFk +cAs +cFT +cSK +cGx +cGK +nzh +nzh +cGY +csd +csd +ccw +aaf +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(119,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaf +aaa +adR +abo +aaZ +aaZ +aaZ +acT +adl +aaZ +aaZ +agn +agW +ahE +aii +agn +ajd +ajI +ahY +akW +aiG +amo +amW +anz +anz +aoz +aod +aqe +arf +apY +ate +arf +apY +ath +arf +apY +ath +arf +apY +ate +arf +anF +ahn +aaa +aJn +aLY +aLY +aOG +aPR +aPR +aPR +aUb +aVq +aWM +aYr +aZV +bbo +bch +bdi +bei +bfy +bgS +bik +aZV +aZV +bmx +bmx +bmx +bqH +bsh +bsh +bsh +bsh +bqH +aJq +aJq +aXf +bCv +bDJ +bCt +bGD +bCv +bJs +bKy +bLL +bLL +bNQ +bOU +bQj +bOd +bOd +bRx +bTP +bVP +bWP +bXL +bYK +bRj +bTg +bUm +bVp +bXH +bUm +bZC +cbp +cck +cin +cjj +cjX +ckO +ckH +cja +cny +ccw +cip +cnx +cDx +cqb +cqb +cqb +cEC +cqb +cqb +cAr +cqb +cGh +cGC +cey +ijc +csd +cEk +csd +udp +ccw +aaf +aaT +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(120,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaa +abp +abP +aco +acO +abl +abO +abO +afc +afQ +agw +agY +ahA +ahZ +adR +aiQ +ajI +akt +akQ +agj +agj +aiX +anB +anz +aoD +aod +aqe +arf +aqn +ath +arf +auw +ath +arf +ayV +ath +arf +aCd +ath +arf +anF +ahn +aJw +aJw +aMh +aJq +aOE +aJn +aaa +aPR +aUe +aVs +aXa +aYD +aZX +baf +bdk +bdk +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 +bLN +bNS +bOX +bQm +bRv +bOd +bTN +bTP +bRA +bWQ +bWQ +bYN +bRm +bTj +caA +cer +ccs +bZu +cfb +cfb +cgS +ciq +cfb +cfb +cfb +clR +cgR +cgR +cMm +cir +cDt +cDy +cqC +crc +cEi +cED +crc +crc +cFy +cBR +cGi +cGD +cGL +ccw +ccw +ccw +ccw +ccw +ccw +aaa +aaT +aaT +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(121,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +abo +abO +abO +abO +abO +abO +abO +afb +abo +afg +ahb +ahG +aik +cBV +ajf +ajK +aks +akY +alx +amp +aiX +anA +anz +aoC +aod +aqe +arf +asd +atg +arf +asd +awo +arf +asd +aAb +arf +asd +aDK +arf +aoa +ahn +aJv +aKG +aMg +bHt +aOE +aJn +aaa +aPR +aUd +aVr +aWZ +aYq +aZW +aZG +bej +bej +bdj +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 +bSE +bRx +bUI +bVR +bWQ +bOO +bQe +bRk +bTi +caA +bVr +bXN +bZt +bZE +cbs +cCT +cdn +cej +cep +ces +clN +ccm +ckF +cDe +cDk +coc +cqa +cig +ccw +ccw +czF +csd +csd +cFz +cFU +cGj +cGE +cGM +cGZ +aag +aaa +aaf +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(122,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +abp +abO +acq +acq +acq +acq +aew +afe +afS +agy +aha +ahC +aia +aiP +aiR +ajB +akv +ala +akz +alf +aiX +anA +anz +aoF +apo +aqh +arh +asg +atj +aul +auR +atj +aul +azc +atj +aAX +azc +atj +aFe +aul +aHT +aJy +aJy +aMj +aJq +aOE +aJn +aaa +aPR +aPR +aPR +aXc +aPR +aZV +baq +baQ +baQ +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 +bMK +bUJ +bVS +bWQ +bXP +cBI +bRS +bTH +caA +bWh +cdt +bZA +cfh +cfM +cco +cdp +cel +cyM +ckT +cgU +cco +cgU +cgU +cis +cjN +cDz +cDH +cMm +csd +crM +crV +crV +cFA +csd +cGk +ccw +aag +aag +aag +aaf +aaf +aaf +aaf +gXs +aaf +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(123,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaf +abo +abO +acp +acP +acP +acP +aev +afd +afR +agx +agZ +ahI +aim +adR +aiG +ajL +aku +akZ +alE +amq +aiX +anA +anz +aoE +aod +aqg +aun +asf +ati +auk +aux +avt +axL +bbl +azT +auk +auk +aDG +aFd +auk +aHH +aJg +aKo +aLO +aJq +aOE +aJn +aaa +aaa +aPR +aVt +aXb +aYo +aZV +bao +baP +bbZ +bcP +cBo +bbw +bbw +bbw +aZV +bmA +bmx +bmx +bqH +bsk +btJ +buV +bws +bqH +aJq +aJq +byW +bCv +bAV +bCv +bCv +bCv +bJs +bKz +bLK +bML +bNT +bOV +bQj +bRw +bSF +bOd +bTP +bRA +bWQ +bXO +bQq +bRo +bTG +caA +bVK +bYb +bZw +cap +ctR +ccn +cdo +cek +ccw +cet +cfd +cfB +cfI +cgQ +cjS +cjN +cqm +cgR +crd +cEk +crL +cEW +cse +cse +csu +cGl +ccw +aaa +aaa +aaf +aaa +aaf +ctv +aaT +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(124,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +abp +abR +abP +abP +abP +abP +abp +abp +abp +agA +afU +ahF +aip +adR +aiX +ajN +akx +aiX +aiX +aiX +aiX +anC +anU +anC +cSA +aqe +arf +arf +arf +arf +auU +avG +awr +awr +azV +aAh +aAh +aFg +aFh +aAh +aAh +aAh +aAh +aLR +aJq +aOE +aJn +aaa +aaa +aTQ +aVd +aXe +aYp +aZV +bbv +bcm +bcm +bem +bfD +bgW +bfD +bjI +aZV +bmC +boa +bpm +bqH +bsn +btL +buY +buY +bqH +aJq +aJq +aXf +bCv +bDP +bCv +bAw +bHV +bJw +bKC +bLK +bMN +bNV +bOV +bQo +bRz +bSH +bOd +bTP +bRA +bWQ +bWQ +bWQ +bWQ +caD +bWQ +ccw +ccw +cey +ccw +ccw +ccw +ccw +ccw +ccw +ccw +ccw +ccw +ccw +ccw +cDl +cjN +cjh +cDI +ccw +ccw +ccw +ccw +ccw +cMm +cMm +cMm +ccw +aaf +aaf +aaf +aaf +aaf +ctv +aaT +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(125,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaf +aaf +abq +abq +abq +abr +abr +abq +abq +aff +afT +agz +ahb +ahF +clI +abp +ajh +ajM +akw +alb +alG +amr +amY +amY +ajp +aoG +cSA +aqe +arf +aqo +asp +arf +auS +avv +awu +awr +aAd +aAh +aCm +aDL +aFf +aGk +aHU +aJz +aAh +aLQ +aJq +aOE +aJn +aaa +aaa +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 +bOd +bOV +bQj +bRy +bSG +bOd +bUK +bVT +bWR +bXQ +bOd +bZF +bPc +bOd +ccv +cdw +cex +bOd +cfN +cfN +bLK +aaf +bOh +bOh +bOh +bOh +bOh +ccw +cDm +cjP +ckF +cDJ +ckF +cpE +cjR +crW +csg +aag +aaa +aaa +aaa +aaa +aaa +aaa +ctv +ctv +ctv +aaT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(126,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +abq +abT +acs +acR +ado +adN +aex +afh +afV +agB +ahd +ahI +clS +abp +ajj +ajP +aky +alc +alI +ams +amZ +amZ +anW +aoH +cSA +aqe +arf +asm +blU +atQ +avg +awp +axN +awr +aAg +aAh +aDO +aDQ +aFi +aGl +aBy +aBy +aAh +aMn +aJq +aOE +aJn +aaa +aaa +aJn +aVv +aXg +aYF +aZV +bbw +bcn +bbw +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 +bSI +bUM +bVV +bWS +bSI +bSI +bZG +caE +cbA +ccy +bOd +bOd +bQu +cfO +cgW +cit +cph +ckb +ckV +clU +clU +bOh +ccw +coZ +cgU +cgU +cDK +crw +cjO +ccw +crX +cfK +aag +aaa +aaa +aaa +aaa +aaa +aaa +aaT +aaT +aaT +aaT +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(127,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaf +aaf +abr +abS +acr +acQ +adn +adM +abq +afg +afU +afU +ahc +ahH +aiq +abp +aji +ajO +akw +ajn +alH +amr +amY +amY +anV +ajo +cSA +aqe +arf +ari +asu +aun +auW +avR +axM +awu +aAf +aAh +aCn +aDM +aGx +aAh +aAh +aBy +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 +bOd +bTO +bUL +bVU +bMK +bXR +bYQ +bXR +bMK +cbz +ccx +cbA +cbA +cfi +bRH +cgV +bMQ +aaf +bQA +ckU +clT +cmU +bOh +ccw +cpa +cjc +cqo +cDL +cjk +cjm +ccw +ccw +cig +aag +aag +aag +aag +aaa +aaa +aaa +aaa +aaa +aaa +eRz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(128,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +abr +abV +acu +acS +adp +adP +aey +afj +afX +agC +ahf +ahK +ait +abp +ajl +ajR +akw +ald +alJ +amt +ajp +ajp +anY +ajo +apq +aqe +arf +arf +arf +arf +avm +aws +axP +azb +aAi +aAh +aCn +aDM +aGx +aGm +aHV +aBy +aAh +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 +bwu +bBB +aJv +bzs +bFp +bGJ +bHX +bJA +bKG +bLK +bMR +bIH +bJF +bQr +bRA +bOd +bTP +bOd +bVX +bMK +bMK +bYR +bMK +bMK +cbC +bRA +bTO +cez +cez +cfQ +cgY +ciu +bVu +ckb +ckW +clU +clU +bOh +ccw +ccw +cpI +ccw +cDL +cjl +cjQ +cjV +cig +aaf +aaf +aaf +aaf +aag +aaa +aaa +aae +aaa +aaa +aaa +eRz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(129,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaf +aaf +aaf +aaf +aaf +aaf +abr +abU +act +acu +acu +ato +abq +afi +afW +afW +ahe +ahJ +ais +abp +ajk +ajQ +akw +ajn +alH +amr +amY +amY +anX +ajo +app +aqi +arf +ask +atm +arf +avl +awq +axO +aza +aAh +aAh +aAh +aDS +aGx +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 +bMQ +bRC +bMQ +bTP +bUN +bVW +bMK +bXS +bXS +bXS +bMK +cbB +alk +alX +aoZ +bQt +apa +cgX +apF +apI +bOh +bOh +bOh +bOh +bOh +cig +cpb +ciZ +cqp +cDN +cjT +cgR +crP +cig +aaa +aaa +aaa +aaf +aag +aaa +aaa +aaa +aaa +aaa +aaa +quT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(130,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +abq +abW +abk +acj +acn +adh +adm +afk +afZ +agE +ahh +ahM +aiv +abp +aiY +ajE +ajH +akn +ale +alD +ana +ana +amu +ajo +aps +aqk +arf +asm +aHw +aup +avn +awv +axX +aze +aAh +aBz +aBz +aDU +aGx +aGn +aHW +aBy +aAh +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 +aJq +aJq +bCA +bzs +bCC +bDA +bFx +bGW +bKI +bLQ +bMT +bOb +bPd +cBF +bRD +bSK +bTR +bUP +bVZ +bWT +bWa +bYS +bZH +caF +bQt +cBJ +cdy +bOd +bRy +cfR +cha +civ +cph +ckb +ckY +clW +clW +bOh +cig +cig +czg +cig +cDN +crh +crA +crR +crY +csi +aaa +aaa +aaf +aag +aaa +aaa +aaa +aaa +aaa +aaa +eRz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(131,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abq +abq +abq +abq +abq +abq +abq +afg +afY +afY +ahg +ahL +aiu +abp +ajm +ajS +ajn +ajT +akA +amr +amY +amY +anV +ajo +apr +aqj +arf +ark +asL +aun +avu +awt +axV +azd +azX +aAZ +aCe +aDT +aGx +aAh +aAh +aBy +aAh +aCr +aCr +aCr +aJC +bYP +aQg +aJC +aQg +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 +bOa +bPc +bQs +bMZ +bSJ +bTQ +bUO +bVY +bOd +bOd +bOd +bOd +bOd +cbD +bTO +cdx +bOd +bOd +cfP +cgZ +bMQ +aaf +bQA +ckX +clV +cmV +bOh +cig +aaa +afp +aaa +cDN +cqY +cqY +cqY +cig +aaa +csl +aaa +aaf +aag +aaa +aaa +aaa +aaa +aaa +aaa +quT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(132,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +abo +aeB +afm +agb +agG +ahi +ahN +aix +abp +ajp +ajU +ajn +trb +ajn +amr +ajp +ajp +ajp +ajo +apt +aqm +arj +arj +arj +arj +avx +awz +axR +avx +aAh +aBA +aBA +aDP +aBx +aGp +aHX +aBy +aAh +aMq +adq +aQb +aPZ +aRu +aQc +aUf +aQc +aXi +aQc +baa +aJC +bcq +bcq +bcq +bfF +nQI +bio +bgF +blf +bmF +bob +bha +bfF +bqR +brX +bof +bwx +bvj +bwB +bxa +byZ +bzI +bAX +bCF +bDB +bFB +bvd +bKJ +bLR +bMV +bOd +bMZ +bQv +bRF +bSM +bTS +bUQ +agd +bUO +bVZ +bVZ +bZI +caH +cbF +ccz +cdA +cez +bOe +cfQ +chb +ciu +bVu +ckb +ckZ +clW +clW +bOh +cig +aaa +aaa +aaa +cDN +aaa +aaa +aaa +aaf +aaf +cso +aaf +aaf +aag +aaa +aaa +aaa +aaa +aaa +aaa +gXs +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(133,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +abo +aeA +afl +aga +abp +ahj +abp +cAN +abp +ajo +ajo +ajo +ajo +ajo +ajo +ajo +ajo +aoa +ajo +apt +aql +apv +arl +asM +atV +avw +awy +axQ +azj +arj +aAh +aAh +aAh +aAh +aAh +aAh +aAh +aAh +aMp +aMr +aOH +aPY +aQc +aRx +aQc +aQc +aPY +aQc +aZZ +aJC +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 +bQu +bRE +bSJ +bPe +bOd +cCB +cCC +bXT +bXT +bXT +caG +cbE +bTU +cdz +cez +bUL +cfP +bOd +bMQ +aaf +bOh +bOh +bOh +bOh +bOh +ccw +aaa +aaa +aaa +cDL +aaf +aaa +aaa +aaf +aaa +csn +aaa +aaf +aag +aaa +aaa +aaa +aaa +aaa +aaa +quT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(134,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acw +abp +abp +adR +abp +cxG +abp +adR +ahl +ahO +aic +ahT +ahT +ahT +ahT +ahT +ahT +ahT +alL +ahT +anb +ahT +anZ +apu +arj +asb +asV +aus +aus +awA +axT +azl +aAl +arj +aCq +aDR +aFl +aGD +aHZ +aCr +aKJ +aMr +aMr +aOH +aQc +aQd +aQa +aRv +aPY +aVw +aPY +bac +aJC +aYV +aYV +aYV +bfF +bhc +bip +bgP +bjL +bkL +bmT +bjL +bpM +bqT +bFD +bJG +bJG +bvl +bwE +bxc +bzb +bzK +bBb +cpG +bDC +bId +bvd +bKH +bLK +bMX +bOd +bPg +bQx +bRH +bSM +bTU +bUS +bUS +cCD +wHy +bUS +bUS +bUS +bXU +bRF +bMW +cez +cez +cfQ +chd +bQy +cpP +ckc +clb +clY +clZ +bOh +aaa +aaa +aaa +aaa +cCQ +aaf +aaa +aaa +aaf +aaa +csn +aaa +aaf +aag +aaa +aaa +aaa +aaa +aaa +aaa +eRz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(135,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aag +acU +adr +sXy +aeC +afn +agc +abp +ahk +aoJ +aib +aif +aif +aif +aif +aif +aif +aif +alK +aif +bkV +anc +anD +aoI +apX +arn +asN +aur +avy +avy +axS +azk +aAk +arj +aCf +aDY +aFj +aGr +aHI +aJk +aMr +aMr +aNt +aOH +aQc +aQc +aSq +aQc +aQc +aPY +aQc +bab +aJC +aYV +aYV +ber +bfF +bhb +bip +bjO +bip +bmG +lhu +bnC +bpF +bqS +brY +bwz +bwy +bvj +bza +bxb +bvh +bCD +bAY +bCH +bDR +bIc +bvd +bKH +bLK +bMW +bOe +bPf +bQw +bRG +bSN +bTT +bUR +bWb +cCE +bTT +bUR +bZJ +bUR +bTT +bUR +cdB +bUR +bUR +cfT +chc +bMQ +aaf +bQA +cla +cBP +cmW +bOh +aaa +aaa +czN +aaa +cCQ +aaf +aaa +aaa +aaf +aaa +csn +aaa +aaf +aag +aaa +aaa +aaa +aaa +aaa +aaa +jAD +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(136,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aag +aag +aag +aaa +aaa +aag +abp +abp +abp +abp +afo +abp +abp +ahn +ahn +aiA +aiA +aiA +ahn +aiA +aiA +aiA +ahn +and +anF +aod +ahn +apx +ahn +arj +asr +asN +aut +avz +aXF +axU +azn +aAn +arj +aCh +aEc +aFk +aGw +aHK +aCr +aKr +aMr +bHF +aOH +aQc +aQc +aSo +clX +aVx +aQc +aQc +aQc +bbx +aYV +aYV +aYV +bfF +bhd +bis +bjR +kGA +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 +bSM +bTV +bUT +bWc +bWU +bXV +bYT +bZK +bOd +cbG +ccA +cdC +ceB +cez +cez +chf +cix +cpP +ckd +clc +clZ +clZ +bOh +aaa +aaa +aaa +aaa +cCQ +aaf +aaa +aaa +aaf +aaf +cso +aaf +aaf +aag +aaa +aaa +aaa +aaa +aaa +aaa +eRz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(137,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaf +aaf +aaf +aaf +abp +aaa +afp +aaa +abp +aaa +aaa +aaa +aaf +aaf +aaf +aaa +aaf +aaf +ahn +ahn +anE +aod +aoK +apw +aqp +arj +asq +asN +aut +avz +avz +axU +azm +aAm +arj +aCr +aEb +aCr +aGv +aCr +aCr +aKq +aLS +aNF +aOH +aQc +aQc +aSH +aQc +aQc +aRx +aQc +aQc +aQg +aYV +aYV +bes +bfF +bfF +bir +bjQ +blh +bfF +bfF +bfF +bfF +bqU +bsq +bvj +bvj +bvj +bvj +bvj +bvj +bvj +bvd +bFu +bvj +bvj +bvd +bKH +bLK +bMY +bOf +bPh +bQy +bRI +bSP +bPh +bQy +bRI +cCF +bPh +bQy +bRI +bQy +bPh +bQy +bRI +ceA +bLK +bLK +che +bLK +aaf +bOh +bOh +bOh +bOh +bOh +aaa +aaa +aaa +aaa +cCQ +aaf +aaa +aaa +aaf +aaa +csn +aaa +aaf +aag +aaa +aaa +aaa +aaa +aaa +aaa +eRz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(138,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +adR +aaa +aaa +aaa +adR +aaa +aaa +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaf +ahn +anG +aoe +aoL +apy +aqq +arj +ast +asN +auv +avA +avA +axW +azo +aAp +aBC +aCt +aEA +aCt +aGz +aIb +aCr +aKN +aMv +aNH +aOJ +aQc +aPY +aSG +aPY +aUg +bFC +aRw +aQc +bbx +aYV +aYV +bet +bfH +bhf +bhh +bhh +bhh +bmJ +bof +bpu +bqP +bsy +bEe +bvh +bwC +bxN +bze +bAp +bvh +bCG +bBd +bFw +bDD +bFJ +bvd +bKH +bzs +bRK +aaf +bRK +aaf +bVv +aaf +bRK +aaf +bVv +cCG +cCH +cCI +cCJ +cCI +cCH +cCI +cCJ +cCI +cCP +bLK +chg +bLK +aaf +aoV +aoV +aaf +aaf +aaf +aoV +aoV +aoV +aoV +cCQ +aoV +aaa +aaa +aaf +aaa +csn +aaa +aaf +aag +aaa +aaa +aaa +aaa +aaa +aaa +quT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(139,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahn +khB +ahn +ahn +ahn +ahn +arj +ass +asX +auu +att +att +att +azf +aAo +apX +aBB +aBB +aBB +aGy +aIa +cNE +aKM +aMu +aNG +aKM +aKM +aKM +aSp +aQc +aQc +aSq +aQc +bad +bby +aYV +aYV +bet +bfG +bhe +bit +bjS +bli +bli +boe +bli +bpN +bqX +bEe +btg +bDR +bDR +bDR +bDR +bzc +bDR +bDZ +bCK +bFy +bFF +bvd +bKH +bzs +bRK +bOh +bPj +bQA +bPj +bOh +bPj +bQA +bPj +bOh +bPj +bQA +bPj +bOh +bPj +bQA +bPj +bOh +cCQ +bLK +cyG +bLK +aoV +aoV +aoV +aaf +aaf +aoV +aoV +aoV +aoV +aoV +cCQ +aoV +aaa +aaa +aaf +aaa +csn +aaa +aaf +aag +aaa +aaa +aaa +aaa +aaa +aaa +eRz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(140,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aag +aag +aaa +aaa +aaf +arj +clO +asZ +aua +clO +awB +axY +azh +gsz +arj +aaf +aaa +alP +aGI +aId +aJD +aKP +aMx +aNJ +aQe +aOL +aOL +aOL +aOL +aOL +aOL +aXO +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 +bRK +bOh +bPl +bQB +bRL +bOh +bTX +bUV +bWd +bOh +bXX +bYV +bZL +bOh +cbI +ccC +cdD +bOh +cCG +cCS +cCS +cCI +cCI +cCI +cCI +cCI +cCI +cCI +cCI +cCI +cCI +cCI +cDY +aaf +aaf +aaf +aaf +aaf +cso +aaf +aaf +aag +aaa +aaa +aaa +aaa +aaa +aaa +quT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(141,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aqG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aqr +arm +arm +asY +atZ +auB +auB +atZ +azg +azp +azp +aCu +aaf +alP +aGH +aIc +aJC +aKO +aMw +aNI +aMw +aOK +acN +acN +acN +acN +acN +aQc +bae +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 +bRK +bOh +bPk +bPm +bPm +bOh +bTW +bUU +bTW +bOh +bXW +bYU +bXW +bOh +cbH +ccB +cbH +bOh +aaf +aoV +aoV +aaf +aoV +aoV +aoV +aaf +aoV +aoV +aoV +aoV +aoV +aoV +aaf +aoV +aaa +aaa +aaf +aaa +csn +aaa +aaf +aag +aaa +aaa +aaa +aaa +aaa +aaa +quT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(142,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aqs +aro +aro +aro +aro +aro +aro +aro +aro +aro +aro +aCv +aaa +alP +aGJ +aIe +aJC +aJC +aJC +aJC +aJC +aJC +aXj +aVy +aSY +aVy +aVy +aYI +bah +aJC +aYV +bdo +beu +bvk +biu +biu +bjT +blm +bmL +boi +bpw +bhh +bsx +btX +bvj +bwG +bxR +bxR +bvj +bvj +bzW +bDZ +bCT +bGR +bIj +bJC +bKH +bzs +bRK +bOh +bPm +bQC +bPm +bOh +bTW +bUW +bTW +bOh +bXY +bYW +bXW +bOh +cbH +ccD +cbH +bOh +aaf +aaf +aaf +aaf +aaf +aoV +aoV +aaf +aoV +aoV +aoV +aoV +aoV +aae +aaf +aoV +aaa +aaa +aaf +aaa +csn +aaa +aaf +aag +aaa +aaa +aaa +aaa +aaa +aaa +jAD +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(143,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aqs +aro +aro +aro +aro +aro +aro +aro +aro +aro +aro +aCv +aaf +alP +aGJ +aIe +aJE +aKQ +aLU +aNu +aJC +aPw +aQc +aQc +aSZ +aQc +aVy +czP +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 +bRK +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +bOh +aaf +aaf +ciC +bVu +bVu +bVu +bVu +bVu +caJ +aoV +aoV +aoV +aoV +aoV +aaf +aoV +aaa +aaa +aaf +aaa +csn +aaa +aaf +aag +aaa +aaa +aaa +aaa +aaf +aaf +ctZ +ctZ +ctZ +ctZ +ctZ +aaf +aaa +aaf +cvF +aaf +aaa +aaa +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +cAU +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(144,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aqs +aro +aro +aro +aro +aro +aro +aro +aro +aro +aro +aCv +aaa +alP +aGA +aHS +aJx +aJx +aMi +aNE +aOO +aQi +aRz +aSF +aQc +aQc +aXl +aQc +bai +aJC +aYV +aYV +bet +bfH +bhh +bhh +bhg +bln +bmM +boj +bof +bhh +bsx +btV +bvj +bwI +bxT +bxQ +bAt +bvj +bCM +bDZ +bDR +bDR +bIl +bJC +bKH +bzs +bUr +bVu +bVu +bVu +bVu +bVu +bVu +bVu +bVu +bVu +bVu +bVu +bVu +caJ +aaf +aaf +aaf +aaf +aaf +cfj +cfU +cfj +cfj +ckf +cfj +cfj +bUr +bVu +bVu +bVu +bVu +bVu +bVu +bVu +bVu +bVu +bVu +bVu +csM +bVu +bVu +ctd +bVu +bVu +bVu +bVu +caJ +ctZ +ctZ +cuo +cuA +cuM +ctZ +cvk +cvk +cvk +cvk +aaf +aaf +aaf +aaf +cvk +cvk +cvk +cvk +cvk +cvk +cvk +cva +cva +cva +cva +cva +cva +cva +cva +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(145,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aqs +aro +aro +aro +aro +aro +aro +aro +aro +aro +aro +aCv +aaf +alP +aGL +aHM +aJm +aKz +mjr +aND +aJC +aab +aRg +aQc +aac +aQc +aXk +aQc +aQc +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 +bPn +bPn +bzs +bzs +bPn +caI +bPn +bzs +bzs +bzs +cfj +cfj +cjp +chh +ciy +cke +clg +cfj +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aaa +aaa +aaf +aaa +csn +aag +aag +aag +aag +aaa +aaa +aaa +ctN +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 +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(146,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aqs +aro +aro +aro +aro +aro +aro +aro +aro +aro +aro +aCv +aaa +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 +bWe +bWe +bWe +bWe +bWe +cdE +bAw +bzs +bAw +caK +cfj +ciB +ckh +chj +ciA +cjr +clh +cfj +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aaa +aaa +aaf +aaa +csn +csD +cta +csD +cua +aaa +aaa +aaa +aaf +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 +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(147,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aqu +arm +arm +arm +auy +auB +auB +axZ +azp +azp +azp +aCw +aaf +alP +aGL +aIg +aJH +aKR +aMB +aJC +aOP +aJI +aRA +aVz +aVz +aVz +aVz +aYJ +aJI +bbz +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 +bzs +bZM +cbJ +ceC +ceC +cfW +cfX +chk +chl +ciz +chi +gGE +cjr +ckg +cmb +cpO +cpQ +cpQ +cpQ +cpQ +czJ +aaf +aoV +aaa +aaa +aaf +aaa +csn +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 +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(148,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +arj +arj +arj +auA +avD +awC +ayb +arj +alP +alP +aaa +aaa +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 +bof +bof +bNd +bIJ +bPo +bQE +bRM +bOr +bTZ +bKH +bzs +bAw +bBR +bHX +bzs +bzs +bzs +ccF +cdG +ceE +cfl +cfZ +cki +cld +eHI +cjr +csq +xEu +wHz +cmd +cmd +cmd +aag +aag +aag +aag +aaa +aaa +aaf +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(149,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaf +aaf +aaf +arj +auz +avC +avC +aya +arj +arA +alP +alP +alP +alP +aGN +aIh +aJI +aKT +aMD +aNM +aOI +aJI +aRy +aSJ +aTM +aVB +aVz +aVz +baj +bbz +aYV +bdp +aYV +bfK +bfK +bfK +bfK +bfK +bfK +bfK +bnF +bqQ +bsx +bhh +bfJ +bhh +bhh +bhh +bhh +bhh +bzX +bBm +bof +bGT +bIo +bof +bIo +bLU +bNd +bII +bOr +bQD +bLY +bMa +bTZ +bKH +bzs +bAw +bXZ +bHX +bZN +caK +bzs +ccE +cdF +ceD +cfk +cfY +rfW +ckj +cjs +cle +cli +uPT +cmY +cmc +cop +cmd +cmd +cqs +aaa +aag +aaa +aaa +aaf +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(150,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaf +arj +auB +auB +arj +arj +arj +anf +anf +anf +awD +alP +aGB +aIf +aJA +aKC +aKC +aKC +aON +aQk +aRD +aSM +aVD +aVE +aXm +aVz +bak +bbz +aYV +bdp +aYV +bfL +bhn +biz +biz +biz +bmR +bfL +bol +bqQ +bsx +bst +bfJ +bhh +bhh +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 +clj +cjv +clj +ckk +cmf +cna +cnC +cor +ciM +cpN +cqt +aaa +aag +aaa +aaa +aaf +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 +cBf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(151,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aaa +alP +ayf +aBD +aCx +aDV +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 +bCR +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 +aaa +aag +aaa +aaa +aaf +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(152,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aaa +alP +aAq +aAq +aCy +aCG +alP +aGL +avI +aJK +aKV +tMl +aMl +aMF +aJI +aRG +aSO +aTO +cCq +aVz +aVz +bak +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 +czI +aag +aag +aag +aaa +aaa +aaf +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(153,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aba +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaf +aaf +alO +alO +alO +alP +alP +alP +alP +alP +alP +alP +aDW +aFn +aGP +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 +bqQ +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 +aaf +aaa +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(154,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaS +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aag +alO +arp +alO +awD +anf +anf +awD +anf +aoP +alP +aBE +alP +aDX +alP +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 +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +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 +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(155,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaa +ads +adS +aeG +aaa +ads +adS +aeG +aaa +ads +adS +aeG +aaa +aaS +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aag +cxW +anf +aqv +anf +anf +anf +aEl +anf +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +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 +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(156,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaS +aaf +ads +adT +aeG +aaa +ads +adT +aeG +aaa +ads +adT +aeG +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +alO +alO +alO +anf +auC +alP +anf +anf +cVb +jbf +wrp +fnC +kPd +xiw +aGS +aIm +aIp +aKH +aMI +aIp +aOV +aOX +aOX +aSR +aUi +aVJ +aOX +aYP +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +cua +cua +cua +cua +cuf +cuf +cux +cuK +cuX +cuf +cvk +cvk +cvk +cvk +aaf +aaf +aaf +aaf +cvk +cvk +cvk +cvk +cvk +cvk +cvk +cva +cva +cva +cva +cva +cva +cva +cva +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(157,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaa +ads +adT +aeG +aaf +ads +adT +aeG +aaf +ads +adT +aeG +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alO +aqy +anf +alP +awE +anf +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 +aoV +aoV +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaf +aaf +aaf +cuf +cuf +cuf +cuf +cuf +aaf +aaa +aaf +cvK +aaf +aaa +aaa +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +cAX +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(158,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +ads +adT +aeG +aaa +ads +adT +aeG +aaa +ads +adT +aeG +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +apC +apC +apC +apC +apC +apC +alP +anf +cVb +cVb +cVb +cVb +cVb +wBd +aGC +aIl +aIq +aKK +aMy +aIp +aOX +aQm +aRJ +aRJ +aRJ +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 +bWk +bXc +bYe +bNd +bZS +caR +bzs +ccL +ccM +ceL +ceJ +cgh +ceJ +ceJ +ccM +ceJ +cAe +cmj +cne +bHd +bPn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(159,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaS +aaS +aaf +aaa +ads +adT +aeG +aaa +ads +adT +aeG +aaa +ads +adT +aeG +aaa +aaf +aaa +aaa +aaa +aaa +amw +aof +aof +aof +aof +arq +asv +atv +auD +apC +awF +anf +alP +arA +anf +aCz +asw +aCJ +aGT +aIn +aIp +aKI +aMt +aIp +aOW +aQm +aRJ +aSS +aUj +aRJ +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(160,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaa +aaf +aaa +aaa +aaa +adV +aaa +aaa +aaa +adV +aaa +aaa +aaa +adV +aaa +aaa +aaf +aaa +aaa +amw +amw +amw +aoh +aoN +apA +aof +ars +anf +arx +anf +apC +aoQ +cqM +asw +asw +asw +aCA +anf +aFp +aGW +anf +aIp +fGf +aMA +aIp +aOX +aQm +aRJ +aST +aUk +aRJ +aRJ +aYQ +bam +aYV +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 +bWk +bXc +bYe +bNd +bZU +caS +cbN +ccN +bHd +bzs +bzs +bKT +bAw +bAw +bFr +ceJ +ccM +ccM +cng +bzs +bzs +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(161,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaf +abX +acx +acx +adt +adU +adU +adU +adU +adU +adU +adU +adU +adU +adU +adU +adU +alg +acx +amv +ane +cxN +aog +aoM +apz +aqw +arr +asw +asw +auE +apC +awG +auF +alP +alP +alP +alP +alP +aFo +aGV +aIp +aIp +aKL +aMz +aNQ +aOX +aQm +aRJ +aRJ +aRJ +aRJ +aRJ +aYR +ban +aYV +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(162,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaa +aaf +aaa +aaa +aaa +adX +aaa +aaa +aaa +adX +aaa +aaa +aaa +adX +aaa +aaa +aaf +aaa +aaa +amw +amw +amw +aoi +aoO +apB +aqx +art +anf +anf +auF +apC +awH +auF +alP +aAr +anf +alP +aaa +aFq +aGX +aIp +aJO +aKU +aME +aNN +aOR +aQh +aRI +aSU +aXo +aXo +aXo +aYO +bap +aYV +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 +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(163,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aba +aaS +acy +aaa +ads +adW +aeG +aaa +ads +adW +aeG +aaa +ads +adW +aeG +aaa +aaf +aaa +aaa +aaa +aaa +amw +aof +aof +aof +aof +anf +aoP +atw +auF +apC +aoP +auF +azr +anf +atw +alP +alP +aFo +aGV +aIp +aJN +aLd +aMN +aNQ +aOZ +aOX +aOX +aOX +aUz +aVM +aOX +aYT +bam +aYV +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 +aag +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(164,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +ads +adW +aeG +aaa +ads +adW +aeG +aaa +ads +adW +aeG +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +apC +aqy +anf +anf +aty +auF +apC +alP +auF +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 +aag +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(165,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaa +ads +adW +aeG +aaf +ads +adW +aeG +aaf +ads +adW +aeG +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +apC +anf +anf +alP +atx +auF +apC +auD +auF +alP +aAs +anf +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 +bEm +bEm +bJN +bRT +bEm +bEm +bJN +bRT +bEm +bEm +bDb +cfr +cho +bDb +aaa +cNW +cQB +czY +cOT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(166,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaf +ads +adW +aeG +aaa +ads +adW +aeG +aaa +ads +adW +aeG +aaf +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +apC +anf +alP +alP +apE +auG +apC +aoP +auF +apE +anf +anf +alP +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 +bEm +bEm +bJN +bRU +bXe +bEm +bJN +bRU +bEm +bEm +bDb +cgi +chq +ccQ +aaa +cOT +cQB +czY +cOT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(167,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaa +ads +adY +aeG +aaa +ads +adY +aeG +aaa +ads +adY +aeG +aaa +aaS +aaf +aaf +aaf +aaf +aaf +aaf +aaf +apC +arA +anf +asx +anf +auF +alP +alP +auF +alP +alP +alP +aCB +aEB +aFs +bbE +aIr +bav +aLf +aIt +aNS +aPb +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 +bEm +bEm +bJN +bRU +bEm +bEm +bJN +bRU +bEm +cBz +bDb +cgi +chq +ccQ +aaa +cOT +cQB +czY +cOT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(168,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aiS +aaa +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apC +alP +alP +alP +anf +auH +avF +awI +ayc +asw +aAu +asw +aCD +aEa +aFv +aGG +aIu +aJQ +bCI +aIt +aIt +aPb +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 +bEm +bEm +bEm +bJL +bLa +bMi +bNo +bPy +bPA +bJN +bRW +bTb +bUe +bJN +bWl +bXf +bYg +bJN +bZV +caV +cbS +bDb +cgl +chs +bDb +aaa +cNW +cQB +czY +cNW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(169,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aba +aaS +aaS +aaf +aaa +aaa +aaf +aaf +aaf +aaf +alO +aqz +aru +alP +anf +anf +avE +anf +anf +awD +aAt +aty +aCC +aDZ +aFu +aFu +aIs +aJP +aLg +aMH +aIt +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 +bPB +bLe +bRV +bTa +bUd +bVi +bRV +bTa +bYf +bVi +bRV +bTa +cbR +bDb +cgk +chr +bDb +aaa +cNW +cBN +czY +cNW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(170,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +alO +anf +anf +asy +anf +anf +alP +alP +anf +alP +alP +alP +aCE +aDZ +aFu +aHc +aIw +aJS +aJS +aMJ +aNP +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 +bPD +bQM +bMi +bMi +bRZ +bVj +bMi +bMi +bRZ +bZa +bMi +bMi +bRZ +cTY +cTZ +chu +ccQ +aaf +cOT +cQB +cAa +cOT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(171,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaa +aaa +aaa +aaf +aaf +alO +aqA +anf +alP +anf +anf +alP +awJ +anf +alP +aAv +anf +aCE +aDZ +aFu +aHb +aIv +aJR +aJR +aIt +aIt +aPd +aIt +aRO +aRO +aUC +aVP +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 +bPC +bQL +cBG +bTc +bUf +bTc +bRX +bTc +bUf +bTc +bRX +bTc +cbT +ccP +ccP +cht +ckn +csk +czQ +czU +czZ +cOT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(172,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaa +aaa +aaa +alP +alP +alP +alP +alP +anf +anf +alP +anf +anf +apE +anf +mdr +aCE +aDZ +aFu +aHd +aIx +aJF +aLh +aIt +aNV +aPd +aIt +aRO +aRO +aIt +aVQ +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 +bMi +bMi +bVk +bRZ +bMi +bMi +bZb +bRZ +bMi +bMi +cfy +cgn +cjB +ccQ +aaf +cOT +cgm +czY +cOT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(173,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaa +aaa +alO +apD +aEl +anf +arx +anf +anf +alP +alP +atB +alP +alP +alP +aCF +aDZ +aFw +aFw +aFw +aFw +aFw +aFw +aFw +aPf +aQq +aRP +aIt +aIt +aIt +aWd +aXV +aIt +bbD +aYV +aXq +aYV +bfV +bhw +cHM +biL +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 +bTd +bUg +bVi +bWm +bTd +bUg +bVi +bZW +bTd +bUg +bDb +bDb +bDb +bDb +aaa +cNW +cgm +czY +cNW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(174,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaa +alP +anf +anf +arw +asA +asA +anf +alP +awL +anf +anf +apE +aBF +aCH +aED +aFy +aGO +aIB +aJJ +aKZ +aMW +aFw +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 +bTe +bUh +bJN +bWn +bXg +bYh +bJN +bZX +caW +cbU +bDb +aaf +aaf +aaa +aaa +cNW +cgm +czY +cNW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cOT +cOT +cOT +aag +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(175,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +alO +aoQ +anf +arv +asz +atA +anf +alP +awK +anf +awD +apE +anf +aCk +aEC +aFx +aGM +aIy +aJG +cAz +aMK +aFw +aPg +aQr +aFu +aTb +aIt +aVR +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 +bEm +bRU +bJN +bEm +bEm +bRU +bJN +bEm +bEm +bRU +bDb +aaf +aaa +aaa +aaa +cOT +cgm +czY +cOT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cOT +cOe +cqu +aag +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(176,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alP +alP +alP +aqB +arx +anf +anf +anf +alP +awM +ayg +ayg +ayg +ayg +aCl +aEe +aFw +aFw +aFw +aLo +aLb +aFw +aFw +aPi +aQt +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 +bEm +bRU +bJN +bEm +bXe +bRU +bJN +bEm +bEm +bRU +bDb +aaf +aaa +aaa +aaa +cOT +cgm +czY +cOT +aaf +aaf +aaf +aaf +aaf +cNW +cNW +cOT +cqu +cOT +aag +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(177,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alP +aoP +alP +alP +apE +alP +atB +alP +alP +awx +aye +ayd +aAc +ayd +aCI +aEd +aFw +aHf +aIz +aJM +aLa +cBZ +aFw +aPh +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 +bEm +bUi +bJN +bEm +bEm +bUi +bJN +bEm +bEm +bUi +bDb +aaf +aaf +aaa +aaa +cOT +cgm +czY +cOT +aaa +aaa +aaa +aaf +aaf +cNW +cwy +cmn +cmn +cOT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(178,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaf +alP +alP +alP +alP +alP +anf +anf +anf +anf +anf +anf +aty +anf +awx +avI +asA +apE +arx +aCo +aEf +aFw +aGU +aIC +aJU +aLe +aMX +aFw +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 +cmn +cmn +cmn +cOT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(179,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alO +amx +anf +anf +anf +anf +alP +alP +alP +asB +asB +asB +avo +awx +avH +asB +asB +asB +aCK +aEf +aFw +aHg +aIA +aJT +aLc +aMX +aFw +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 +btW +hox +bzE +bzE +bsX +bzE +bzE +bWo +bPK +bQO +vHt +bOu +rHZ +bQZ +xaZ +cOe +cOe +cOe +czG +czR +czW +cAb +cko +clq +cmq +ciI +cnJ +cri +cTI +cmn +cBT +cBU +cOT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(180,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alP +alP +alP +alP +alP +anf +alP +aqD +arz +asB +atD +auJ +asB +awQ +avK +azt +aAy +asB +aCN +aEf +aFw +aGY +aII +aJW +aMX +aMX +aNW +aPl +aQv +aPl +aTg +aUI +aTg +aRS +aZf +aFz +bbF +aYV +aXq +aYV +bfX +bhB +bgp +bhU +bhU +blX +bow +boO +bsZ +wZy +cdX +ceX +bvg +bvD +bvD +cBx +bvD +bAa +bBE +bDm +bEr +tYi +bHf +bFR +bFR +bIE +bJr +oXS +bWr +bWr +bWr +bWr +bWr +bWo +bJO +bYj +rOY +ltG +fXM +wQy +nXU +nXU +ceM +ccU +cgo +czS +cOb +cAd +cNW +cOx +cBL +cOe +cOe +cvO +cNW +cNW +cNW +cNW +cNW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(181,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaf +aaf +aaf +alP +anf +alP +aqC +ary +asB +atC +auI +auI +awP +avJ +awO +awO +asB +aCM +aEg +aFw +aHi +aHi +aJV +aFw +aFw +aFw +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 +bBD +bBD +bBD +bzA +bzZ +bBD +bBD +brn +kRC +bzZ +bBD +bBD +bBD +bBD +cFi +bBD +bBD +bBD +bBD +bBD +bWo +bPK +uCq +pWN +sHk +caY +cfu +cNY +cNY +nWA +cNY +tfg +hBY +cNW +cNW +cNW +cNW +cNW +cNW +cOe +csy +cko +cAf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(182,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +alP +anf +alP +alP +alP +asB +atE +auI +auI +awT +avM +azv +aAA +asB +cSz +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 +tXU +sYh +btb +wkN +wkN +wkN +fBE +fBE +fBE +wkN +bvK +bvJ +bvJ +bwQ +bxW +bvK +bLh +bMs +bMs +bMs +bhA +bEt +bDn +bEz +bFS +bJT +bhA +bPN +tDw +cba +gZY +cbc +bQZ +cOe +cOe +cPA +cNW +qQH +chw +ciK +cjC +ckp +cls +cmr +cNW +cOe +cmo +cNW +aaf +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(183,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +alP +anf +apE +anf +anf +asB +asB +asB +avL +awR +auI +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 +dgS +bpZ +uIv +bta +lxd +isc +xmh +bXs +bXs +bXs +lQm +bvK +bCk +byo +aDH +bxP +bCf +bvK +aaf +aaf +aaf +bEs +bEs +bGc +bHm +bGc +bEs +bEC +bXh +caZ +olh +bOv +lST +bQZ +cdR +hYR +ceO +cNW +cgp +chv +ciJ +cbf +cbf +clr +bnt +cNW +cOe +cou +cOT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(184,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +alP +aoQ +alP +aqE +arA +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 +bXs +lMg +qeQ +qeQ +jNA +mDn +pDu +bvK +bxj +byq +bwR +bxY +bCh +dGF +bMu +bMu +bMu +dGF +bQU +bFU +bFU +nWM +bXr +bEC +bOw +caZ +pWN +bOv +cka +bQZ +cdR +hYR +dwb +cNW +cNW +jVl +cNW +cNW +cNW +clt +bnt +cNW +cOe +bMB +cOT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(185,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +alP +alP +alP +alP +alP +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 +boA +bpZ +bqf +brn +bXs +qea +hZk +hZk +wXw +bXs +uCO +bvK +bxi +byp +bzJ +bxY +bCg +dGF +bMt +bNt +bNt +dGF +bQT +bFU +bFU +bSh +oUq +bEC +jHW +caZ +pWN +bZZ +cjW +bPN +bQZ +bQZ +bQZ +bQZ +cou +jVl +cNW +aaa +cNW +cgr +cms +cNW +cOe +bNA +cNW +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(186,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaa +aaa +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 +bcq +bdx +bcq +bgc +bgc +biX +bhV +bka +blZ +bnk +bpo +bqk +brn +bXs +gwd +hZk +hZk +wXw +bXs +bUq +bvK +bxl +bys +bzM +bya +bCj +dGF +bMw +cBE +bOE +dGF +bQT +bFU +bFU +bUn +oUq +bEC +fsD +uCq +bYm +uvi +cbb +bTl +eyF +bTl +bTl +bQZ +cgt +jVl +cOT +aaa +cOT +clt +bnt +cOe +cOe +cNW +cNW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(187,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +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 +bkv +biW +blL +biW +biW +bpZ +bth +brn +bXs +lLp +mBm +mBm +xHR +uzl +cbe +bvK +cBu +byr +bzL +bxZ +bCi +dGF +bMv +bNu +bMv +dGF +nEP +bFU +bFU +eBP +oUq +bEC +bOy +caZ +bYl +uvi +cbb +bTl +bTl +bTl +ceQ +bQZ +cOe +jVl +cOT +aaa +cOT +clt +cQw +cNW +cNW +cNW +aaa +aaa +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aba +aaS +aaS +aaS +aaS +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(188,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +atS +aaf +aoV +aoV +atS +aaf +aaf +aaf +atS +aCR +aEn +aCR +aHq +aHq +aHq +aHq +aCR +aCR +aCR +aCR +aCR +aTl +aUL +aVW +aXD +aZj +baD +bbG +aTk +bdy +beI +bgc +bhF +bib +bki +bma +gNQ +bnl +bpq +vdl +uHw +bus +sjr +eit +pij +qKl +ueT +pDu +bvK +bxm +byu +bzN +byb +aGs +kzT +bMx +bNw +bOF +fcG +bJU +bFU +bFU +bUo +bNq +bEC +bOB +bPs +bYo +bSc +cbb +bTl +tKG +bTl +bTl +bQZ +cgu +chA +cNW +aaa +cNW +clt +cQw +aaf +aaf +aaf +aaf +aaf +aaS +aaa +aaf +aaa +acy +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(189,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +atS +aoV +aoV +aoV +atS +aoV +aoV +aaf +atS +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aMZ +aNZ +aPp +aQB +aNa +aTk +aPq +aPq +aXC +aZi +baC +aPq +aPq +bdy +beH +bgc +bgc +bgc +bgc +bgc +bgc +rKc +bqe +vGb +brr +bxn +bqe +bqe +bqe +bqe +bqe +bqe +byt +bvK +bvK +bvK +bvK +bvK +dMC +bMv +bNv +bMv +rcD +qas +tjy +bFU +piD +upN +bQZ +lQG +bQZ +bYi +lAB +eUr +bYi +bQZ +bQZ +bQZ +bQZ +cNW +chz +cNW +cNW +cNW +clt +cQw +aaa +aaa +aaa +aaa +aaa +aaS +aaa +cMQ +crB +cNa +aaa +cMQ +crB +cNa +aaa +cMQ +crB +cNa +aaa +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(190,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +atS +aoV +aoV +aoV +aaH +aoV +aoV +aaf +atS +aaf +aaa +aaf +aaa +aaa +aaa +aaf +aMZ +aOb +aPr +aQC +aRU +aQC +aQC +aQC +czO +aZl +baE +bbH +bcA +bdz +beJ +bge +bhH +biY +biY +bmd +eRu +bnr +bqe +pOJ +btj +buu +bvM +byv +bzO +bzO +bzO +bqe +rYJ +rYJ +bFW +rYJ +qQC +dCN +bLi +bMz +bNy +bOH +dvO +bFU +vzp +bFU +ick +oUq +bQZ +ulo +bQZ +bTl +bTo +cbb +bTl +bQZ +cmo +cNW +cOx +cNW +chC +ciL +cOe +cOe +clv +cmt +aaa +aaa +aaa +aaa +aaa +aba +aaf +cMQ +crC +cNa +aaa +cMQ +crC +cNa +aaa +cMQ +crC +cNa +aaf +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(191,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +atS +aoV +aoV +aoV +aaH +aoV +aoV +aoV +atS +aaf +aaa +aaf +aaa +aaa +aaa +aaf +aMZ +aOa +aVX +aTm +aRL +aTm +aTm +aTm +aWh +aZk +aTm +aTm +bcz +aTm +aTm +bgd +bhG +bhG +bhG +blO +bmc +bnq +bqe +uHA +bru +bvO +bxr +byv +bzO +bzO +bzO +bqe +fGF +bEA +bEA +voe +bGA +nWm +vmV +bMy +bNx +bOG +jMF +kOw +bSk +fvi +bUp +oUq +bQZ +tbd +bQZ +bTl +bTo +sSW +bTl +bQZ +cOe +cNW +cNW +cNW +ccp +cbf +cbf +cbf +clu +cmt +aaa +aaa +aaa +aaa +aaa +aaf +aaa +cMQ +crC +cNa +aaf +cMQ +crC +cNa +aaf +cMQ +crC +cNa +aaa +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(192,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaH +aoV +aoV +aoV +atS +aoV +aoV +aoV +atS +aaf +aaa +aaf +aaa +aaa +aaa +aaf +aNa +aOd +aOU +aPq +aNa +aPq +aPq +aPq +aOU +aPq +aPq +aPq +bcC +cBl +aPq +bgg +aNa +aaa +bky +bqh +bme +bnx +bqe +brA +buv +bvO +bxn +bqe +bzO +bAR +bzO +bqe +uUy +bED +bFX +glg +bGF +bKa +kMT +bMA +bNz +bOI +uES +bHg +lNB +bFT +vCt +bVs +bQZ +bXt +caX +bTl +itG +bTl +cbV +bQZ +cOe +ceS +cae +cNW +ccq +cdq +cjE +ckr +clw +cmu +aaf +aaf +aaf +aaf +aaf +aaf +aaf +cMQ +crC +cNa +aaa +cMQ +crC +cNa +aaa +cMQ +crC +cNa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(193,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +atS +aoV +aoV +aoV +atS +aoV +aoV +aoV +aaf +aaf +aaa +aaf +aaa +aaa +aaa +aaf +aNa +aOc +aPs +aPq +aNa +aPq +aPs +aPs +aXG +aZm +aPs +aPq +bcB +aPq +aPs +bgf +aNa +aaf +bky +btp +ddf +boF +bqe +brz +buv +bvO +bxq +byv +bzO +bAQ +bCl +bqe +bEC +bEC +bEC +bEM +bGC +bEC +bEC +bEC +bEC +bEC +bEC +dMZ +bGk +dyk +ptw +bGz +bQZ +oHU +bZc +bTl +kLM +bTl +bTl +bQZ +cOe +ceR +cbf +cbv +uVS +cQw +cjD +cjD +cjD +cjD +cnj +aaa +aaa +aaa +aaa +aaf +aaa +cMQ +crC +cNa +aaa +cMQ +crC +cNa +aaa +cMQ +crC +cNa +aaa +aaf +aaS +aaS +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(194,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +atS +aoV +aoV +aoV +atS +aoV +aoV +aoV +aoV +aaf +aaa +aaf +aaf +aaf +aaf +aaf +aNa +aNa +aNa +aQF +aNa +aTn +aNa +aNa +aNa +aNa +aNa +cyp +aNa +bdA +aNa +aNa +aNa +aaa +bky +blP +bns +boF +bqe +brC +buv +bvN +kxC +byv +bzO +bzO +bzO +bqe +btp +bEF +bky +bEO +bGK +bKc +cNW +bMB +bNA +cOe +bEC +bJZ +flc +vPE +kwK +bVt +bQZ +bTl +bTl +bTl +bTl +bTl +bTl +bQZ +cOx +sLv +ckS +cNW +jVl +cds +cjD +ckt +cly +cmw +cnj +cnj +cnj +aaa +aaa +aaf +aaa +aaa +crD +aaa +aaa +aaa +crD +aaa +aaa +aaa +csZ +aaa +aaa +aaa +aaf +aaa +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(195,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aoV +aoV +aoV +atS +aoV +aoV +aoV +aoV +aaf +aaa +aaf +aaa +aaa +aaa +aaf +aaf +aaf +aNa +aQE +aNa +aQE +aNa +aaa +aaf +aaa +aNa +aQE +aNa +aQE +aNa +aaf +aaf +aaf +bky +blR +bns +boF +bqe +brv +qVQ +bvO +bxn +bqe +nXP +bzO +bzO +bqe +btp +bEE +bFY +bEN +bGG +bKb +cNX +cNZ +cNZ +jCq +bEC +bEC +bEC +bEC +bEC +bEC +bQZ +bQZ +bQZ +bQZ +bQZ +bQZ +bQZ +bQZ +cNW +cgr +cNW +cNW +ccr +cdr +cjF +cks +clx +cmv +cnk +cnK +cyU +cpi +cpi +cpi +cqJ +crk +crk +crk +crk +crk +crk +crk +csE +cpi +csY +cpi +cpi +cpi +ctB +aaf +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(196,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aoV +aoV +aoV +aaf +aoV +aoV +aoV +aoV +aaf +aaa +aaf +aaa +aaa +aaa +aaf +aaf +aaa +aNa +aQE +aNa +aQE +aNa +aaf +aaf +aaf +aNa +aQE +aNa +aQE +aNa +aaa +aaf +aaa +bky +cyC +bns +boF +bqe +brP +vBV +bsI +erp +byw +bzO +bzO +bzO +bqe +cMB +vqI +bhG +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 +aaa +aaa +aaf +aaa +aaa +crF +aaa +aaa +aaa +crF +aaa +aaa +aaa +csZ +aaa +aaa +aaa +aaf +aaa +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(197,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aoV +aoV +aoV +aoV +aaf +aoV +aoV +aoV +aoV +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aNa +aeR +aNa +aQE +aNa +aaf +aaa +aaf +aNa +aQE +aNa +afE +aNa +aaa +aaa +aaa +aaf +aaa +bns +boF +bqe +bry +bsH +bqe +bqe +bqe +bqe +bqe +bqe +bqe +ddf +bEG +bEs +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 +aaa +aaa +aaa +aaa +aaf +aaa +cMQ +crE +cNa +aaa +cMQ +crE +cNa +aaa +cMQ +crE +cNa +aaa +aaf +aaS +aaS +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(198,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aNa +aQE +aNa +aQE +aNa +aaf +aaf +aaf +aNa +aQE +aNa +aQE +aNa +aaa +aaa +aaa +aaf +aaf +bns +boH +ltd +brQ +bsM +buz +buz +buz +buz +buz +buz +cNU +bsM +bEI +bEs +bHu +bIV +bKf +bLk +bEs +bNC +nRG +cbf +cbf +cbf +cbf +cbf +cbf +cbf +cbf +bYr +clr +cad +cbi +cNW +ccW +cdV +clt +cNW +cgy +ccV +cNW +aaa +aaa +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +cMQ +crE +cNa +aaa +cMQ +crE +cNa +aaa +cMQ +crE +cNa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(199,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +avT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aNa +cyh +aRW +aTo +aNa +aaa +aaf +aaa +aNa +aTo +aRW +cyr +aNa +aaa +aaa +aaf +aaf +aaf +bnu +bhG +bhG +bhG +bsJ +bhG +brE +bhG +bhG +bhG +bhG +cNV +tQg +bEs +bEs +cBA +bIU +bKe +bLj +bEs +bNB +cac +bPP +cNW +cNW +cNW +cNW +cNW +cNW +cNW +cNW +clt +cac +cbh +cNW +ccV +cOe +clt +cfv +cBL +cOe +cNW +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaf +aaa +cMQ +crE +cNa +aaf +cMQ +crE +cNa +aaf +cMQ +crE +cNa +aaa +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(200,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +afa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bky +btp +brH +bvQ +bxt +cNT +bCm +bDh +bEs +bGd +bHv +bIW +bKe +bLm +bEs +rmX +xIa +vxh +cNW +aaa +aaa +aaf +aaa +aaf +cNW +bYs +nRG +ciJ +cbf +cbf +cbf +cbf +ceT +cNW +cOe +chH +cNW +aaf +aaf +aaa +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +cMQ +crE +cNa +aaa +cMQ +crE +cNa +aaa +cMQ +crE +cNa +aaf +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(201,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bZi +bqg +brG +brG +cNR +brG +brG +bDg +bEs +bGc +bGc +bGc +bEs +bLl +bEs +cOT +cOT +cOT +cNW +aaa +aaa +aaf +aaa +aaf +cNW +cNW +cOT +cOT +cOT +cNW +cNW +cNW +cPH +cNW +cNW +cNW +cNW +aaf +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aba +aaa +cMQ +crG +cNa +aaa +cMQ +crG +cNa +aaa +cMQ +crG +cNa +aaa +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(202,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bZi +btq +brI +bvR +cNS +byx +brI +bky +bky +aaf +aaf +aaf +aaf +aaa +aaf +aaf +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aag +aaf +aaa +aaa +aaa +aaf +aaf +cNW +ceU +cNW +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaS +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aaf +aaa +aba +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(203,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bky +bky +bky +bky +bky +bky +bky +bky +aaf +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aag +aaf +aaa +aaa +aaa +aaa +aaf +cNW +cPI +cNW +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaf +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(204,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaa +aaf +aaf +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaf +aag +aag +aag +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(205,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(206,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(207,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(208,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(209,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(210,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(211,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(212,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cxn +aaa +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(213,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(214,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aag +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(215,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(216,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(217,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(218,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(219,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(220,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(221,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(222,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(223,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaa +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(224,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +bGf +bLo +bGf +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(225,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +bIX +bGf +bLn +bGf +bIX +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(226,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +bGf +bGf +bKh +bLo +bMD +bGf +bGf +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(227,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +bGe +bGe +bIY +bKg +bKg +bKg +bND +bGe +bGe +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(228,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +bGf +bHw +bJa +bKg +bLp +bKg +bNF +bOJ +bGf +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(229,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +bGe +bGe +bIZ +bKg +bKg +bKg +bNE +bGe +bGe +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(230,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +bGf +bGf +bKi +bLr +bME +bNG +bNG +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(231,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +bIX +bGf +bLq +bGf +bIX +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(232,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +bGf +bGe +bGf +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(233,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(234,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaf +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(235,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(236,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(237,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(238,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(239,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(240,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aoV +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(241,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aoV +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(242,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aoV +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(243,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(244,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(245,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(246,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(247,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aoV +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aoV +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(248,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aoV +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(249,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(250,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(251,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(252,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(253,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(254,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(255,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +>>>>>>> master "} diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index c5047d1857..452fe9c9dc 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -1335,10 +1335,10 @@ /obj/docking_port/stationary{ dir = 8; dwidth = 11; - height = 15; + height = 22; id = "whiteship_home"; name = "SS13: Auxiliary Dock, Station-Fore"; - width = 32 + width = 35 }, /turf/open/space/basic, /area/space) @@ -12735,6 +12735,9 @@ dir = 10 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/open/floor/plasteel/vault, /area/maintenance/disposal/incinerator) "aGR" = ( @@ -12743,21 +12746,25 @@ pixel_y = 32 }, /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/vault, /area/maintenance/disposal/incinerator) "aGS" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/light{ dir = 1 }, /obj/machinery/airalarm{ + locked = 0; pixel_y = 23 }, -/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plasteel/vault, /area/maintenance/disposal/incinerator) "aGT" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/structure/extinguisher_cabinet{ pixel_y = 32 }, @@ -12766,19 +12773,17 @@ c_tag = "Atmospherics - Incinerator"; name = "atmospherics camera" }, +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/open/floor/plasteel/vault, /area/maintenance/disposal/incinerator) "aGU" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault, /area/maintenance/disposal/incinerator) "aGV" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, /obj/structure/cable/white{ icon_state = "2-4" }, @@ -13456,7 +13461,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/atmos{ name = "Port Bow Solar Access"; - req_one_access_txt = "13; 24" + req_one_access_txt = "24;10" }, /obj/structure/cable/white{ icon_state = "4-8" @@ -13493,9 +13498,6 @@ /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "aIs" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Gas to Turbine" - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -13506,19 +13508,6 @@ /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "aIt" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Gas to Turbine" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"aIu" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable{ icon_state = "4-8" }, @@ -13528,7 +13517,6 @@ /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "aIv" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable{ icon_state = "4-8" }, @@ -14129,17 +14117,12 @@ /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "aJK" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, /obj/structure/cable/white{ icon_state = "4-8" }, /turf/open/floor/plasteel/neutral, /area/maintenance/disposal/incinerator) "aJL" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/machinery/meter, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ @@ -14147,26 +14130,7 @@ }, /turf/open/floor/plasteel/neutral, /area/maintenance/disposal/incinerator) -"aJM" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/maintenance/disposal/incinerator) -"aJN" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/maintenance/disposal/incinerator) "aJO" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Mix to Turbine" - }, /obj/structure/cable/white{ icon_state = "1-4" }, @@ -14217,7 +14181,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/atmos{ name = "Turbine Generator Access"; - req_access_txt = "24" + req_one_access_txt = "24;10" }, /obj/structure/cable/white{ icon_state = "4-8" @@ -14801,7 +14765,9 @@ "aLj" = ( /obj/machinery/meter, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, /turf/open/floor/plasteel/caution, /area/maintenance/disposal/incinerator) "aLk" = ( @@ -15338,7 +15304,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/structure/weightlifter, +/obj/structure/weightmachine/weightlifter, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ icon_state = "platingdmg3" @@ -15380,7 +15346,7 @@ /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "aMu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, /turf/open/floor/engine/vacuum, @@ -15413,8 +15379,11 @@ /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "aMy" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/trinary/filter/flipped{ + icon_state = "filter_off_f"; + dir = 8 + }, /turf/open/floor/plasteel/caution{ dir = 10 }, @@ -15451,7 +15420,7 @@ "aMD" = ( /obj/machinery/door/airlock/atmos{ name = "Turbine Generator Access"; - req_access_txt = "24" + req_one_access_txt = "24;10" }, /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -18026,7 +17995,6 @@ }, /obj/machinery/door/airlock/mining/glass{ name = "Delivery Office"; - req_access_txt = 0; req_one_access_txt = "48;50" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -20429,7 +20397,7 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/atmos/glass{ name = "Atmospherics Storage"; - req_one_access_txt = "24;10" + req_access_txt = "24" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -23431,13 +23399,13 @@ }, /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 }, +/obj/machinery/atmospherics/components/trinary/mixer{ + name = "plasma mixer" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bdd" = ( @@ -24653,7 +24621,7 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/atmos/glass{ name = "Atmospherics Storage"; - req_one_access_txt = "24;10" + req_access_txt = "24" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -29860,6 +29828,13 @@ dir = 4 }, /area/hallway/primary/central) +"brd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/storage_shared) "bre" = ( /obj/machinery/light{ dir = 8 @@ -33074,26 +33049,26 @@ dir = 5 }, /turf/closed/wall/r_wall, -/area/engine/break_room) +/area/engine/storage_shared) "bxG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /turf/closed/wall/r_wall, -/area/engine/break_room) +/area/engine/storage_shared) "bxH" = ( /obj/machinery/status_display, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, /turf/closed/wall/r_wall, -/area/engine/break_room) +/area/engine/storage_shared) "bxI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, /turf/closed/wall/r_wall, -/area/engine/break_room) +/area/engine/storage_shared) "bxJ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -33770,68 +33745,29 @@ "bzg" = ( /turf/closed/wall, /area/engine/break_room) -"bzh" = ( -/obj/structure/table/reinforced, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/item/stack/sheet/metal{ - amount = 30 - }, -/obj/item/stack/sheet/glass{ - amount = 30 - }, -/obj/item/crowbar/red, -/obj/item/wrench, -/obj/structure/sign/warning/nosmoking{ - pixel_y = 32 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/break_room) "bzi" = ( /obj/structure/table/reinforced, -/obj/item/storage/toolbox/electrical, -/obj/item/wrench/power, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/break_room) +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/neutral/corner, +/area/engine/storage_shared) "bzj" = ( -/obj/structure/cable/white{ - icon_state = "0-2" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/break_room) +/obj/machinery/computer/rdconsole/production, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/neutral/side, +/area/engine/storage_shared) "bzk" = ( -/obj/structure/table/reinforced, -/obj/item/stack/rods/fifty, -/obj/item/stack/sheet/rglass{ - amount = 30; - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/stack/cable_coil/white, +/obj/machinery/rnd/production/protolathe/department/engineering, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/break_room) +/turf/open/floor/plasteel/neutral/side, +/area/engine/storage_shared) "bzl" = ( -/obj/structure/table/reinforced, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/item/stack/sheet/plasteel/fifty, -/obj/item/crowbar/power, -/obj/structure/sign/nanotrasen{ - pixel_x = 32 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/rnd/production/circuit_imprinter, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/break_room) +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/engine/storage_shared) "bzm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/bonfire, @@ -34609,43 +34545,6 @@ }, /turf/open/floor/plasteel, /area/engine/gravity_generator) -"bAL" = ( -/obj/machinery/power/apc/highcap/five_k{ - dir = 1; - name = "Gravity Generator APC"; - areastring = "/area/engine/gravity_generator"; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bAM" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/item/radio/intercom{ - name = "Station Intercom"; - pixel_y = 26 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/cable/white{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) "bAN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -34685,33 +34584,28 @@ }, /turf/open/floor/plasteel, /area/engine/gravity_generator) -"bAQ" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -26 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/break_room) "bAR" = ( /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/break_room) "bAS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/neutral, +/area/engine/storage_shared) +"bAT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/power/apc/auto_name/east{ + pixel_x = 26 + }, /obj/structure/cable/white{ icon_state = "0-2" }, -/obj/structure/cable/white, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/break_room) -"bAT" = ( -/obj/machinery/newscaster{ - pixel_x = 32 +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/storage_shared) "bAU" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, @@ -35468,60 +35362,10 @@ /turf/open/floor/plating, /area/engine/gravity_generator) "bCB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bCC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/neutral, -/area/engine/gravity_generator) -"bCD" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bCE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bCF" = ( -/obj/structure/sign/warning/radiation, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"bCG" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm{ pixel_y = 23 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, /obj/machinery/camera{ c_tag = "Engineering - Gravity Generator Foyer"; dir = 4; @@ -35530,17 +35374,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bCH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/gravity_generator) -"bCI" = ( -/obj/structure/closet/radiation, +"bCD" = ( /obj/machinery/light/small{ dir = 1 }, @@ -35555,23 +35394,25 @@ }, /turf/open/floor/plasteel, /area/engine/gravity_generator) -"bCJ" = ( +"bCE" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/closed/wall, -/area/engine/break_room) -"bCK" = ( -/obj/structure/cable/white{ - icon_state = "0-4" +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/effect/spawner/structure/window/reinforced, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bCF" = ( +/obj/structure/sign/warning/radiation, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plating, -/area/engine/break_room) -"bCL" = ( +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bCG" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command/glass{ name = "Power Tools Storage"; @@ -35583,32 +35424,25 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bCM" = ( -/obj/structure/cable/white{ - icon_state = "0-4" - }, -/obj/structure/cable/white{ - icon_state = "0-8" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 }, -/obj/structure/cable/white, -/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"bCH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plating, -/area/engine/break_room) -"bCN" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bCI" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command/glass{ name = "Power Tools Storage"; @@ -35630,15 +35464,54 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/engine/break_room) -"bCO" = ( +/area/engine/storage_shared) +"bCJ" = ( /obj/structure/cable/white{ icon_state = "0-8" }, /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plating, -/area/engine/break_room) +/area/engine/storage_shared) +"bCL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/engine/storage_shared) +"bCM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/engine/storage_shared) +"bCN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/engine/storage_shared) +"bCO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/engine/storage_shared) "bCP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -36705,6 +36578,9 @@ /obj/structure/cable/white{ icon_state = "2-4" }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/gravity_generator) "bEq" = ( @@ -36760,19 +36636,27 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/gravity_generator) "bEv" = ( /obj/structure/cable/white{ - icon_state = "2-4" + icon_state = "1-8" + }, +/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/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/engine/gravity_generator) +/area/engine/storage_shared) "bEw" = ( /obj/machinery/holopad, /obj/effect/decal/cleanable/dirt, @@ -36794,13 +36678,22 @@ /turf/open/floor/plasteel, /area/engine/gravity_generator) "bEy" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"bEz" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ icon_state = "4-8" }, /obj/machinery/door/airlock/highsecurity{ - name = "Gravity Generator Foyer"; - req_access_txt = "10" + name = "Engineering Heavy-Equipment Storage"; + req_access_txt = "32" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -36813,41 +36706,21 @@ dir = 4 }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bEz" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/end{ dir = 8 }, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/storage_shared) "bEA" = ( -/obj/structure/cable/white{ - icon_state = "1-8" - }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/turf/open/floor/plasteel/neutral/side{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/storage_shared) "bEB" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -36855,32 +36728,15 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) +/turf/open/floor/plasteel/neutral, +/area/engine/storage_shared) "bEC" = ( -/obj/structure/cable/white{ - icon_state = "1-8" - }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/engine/storage_shared) "bED" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -36888,35 +36744,25 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/end{ - dir = 4 +/obj/structure/cable/white{ + icon_state = "1-4" }, -/turf/open/floor/plasteel, -/area/engine/break_room) +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/engine/storage_shared) "bEE" = ( -/obj/machinery/door/firedoor, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/door/airlock/highsecurity{ - name = "Engineering Heavy-Equipment Storage"; - req_access_txt = "32" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/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 = 8 +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Shared Engineering Storage"; + req_one_access_txt = "32;19" }, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/storage_shared) "bEF" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -37635,24 +37481,22 @@ }, /area/engine/gravity_generator) "bFY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/gravity_generator) "bFZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/neutral, +/turf/open/floor/plasteel, /area/engine/gravity_generator) "bGa" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 }, /turf/open/floor/plasteel, /area/engine/gravity_generator) @@ -37676,49 +37520,19 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, /turf/open/floor/plasteel, -/area/engine/gravity_generator) +/area/engine/storage_shared) "bGe" = ( /obj/machinery/status_display{ pixel_x = 32; pixel_y = -32 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, -/area/engine/gravity_generator) +/area/engine/storage_shared) "bGf" = ( -/obj/structure/closet/radiation, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/machinery/light/small, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bGg" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/item/twohanded/required/kirbyplants/random, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bGh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, /obj/machinery/camera{ @@ -37726,31 +37540,47 @@ dir = 1; name = "engineering camera" }, -/turf/open/floor/plasteel/caution, -/area/engine/break_room) -"bGi" = ( /obj/machinery/light, -/turf/open/floor/plasteel/caution, -/area/engine/break_room) +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"bGh" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/obj/effect/turf_decal/bot, +/obj/machinery/light_switch{ + pixel_x = -22 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/engine/storage_shared) +"bGi" = ( +/obj/machinery/vending/engivend, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/engine/storage_shared) "bGj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 +/obj/machinery/vending/tool, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 }, -/turf/open/floor/plasteel/caution, -/area/engine/break_room) +/area/engine/storage_shared) "bGk" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/machinery/airalarm{ +/obj/structure/closet/secure_closet/engineering_welding, +/obj/machinery/camera{ + c_tag = "Engineering - Shared Storage"; dir = 1; - pixel_y = -22 + name = "engineering camera" }, -/obj/item/twohanded/required/kirbyplants/random, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/break_room) +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/engine/storage_shared) "bGl" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -38510,26 +38340,17 @@ /area/engine/gravity_generator) "bHQ" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/effect/turf_decal/stripes/line{ + dir = 2 }, -/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/small, /turf/open/floor/plasteel, /area/engine/gravity_generator) "bHR" = ( -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/structure/closet/radiation, /turf/open/floor/plasteel, /area/engine/gravity_generator) "bHS" = ( @@ -38547,37 +38368,36 @@ /turf/open/floor/plasteel, /area/engine/gravity_generator) "bHT" = ( -/obj/structure/cable/white{ - icon_state = "1-2" - }, /obj/machinery/door/poddoor/preopen{ id = "transitlock"; name = "Transit Tube Lockdown Door" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ - dir = 2 + dir = 1 }, /obj/effect/turf_decal/stripes/line{ - dir = 1 + dir = 2 }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/caution, +/area/engine/storage_shared) "bHU" = ( -/obj/effect/decal/cleanable/dirt, /obj/machinery/door/poddoor/preopen{ id = "transitlock"; name = "Transit Tube Lockdown Door" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line{ - dir = 2 + dir = 1 }, /obj/effect/turf_decal/stripes/line{ - dir = 1 + dir = 2 }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/caution, +/area/engine/storage_shared) "bHV" = ( /turf/closed/wall/r_wall, /area/crew_quarters/heads/chief) @@ -40406,7 +40226,7 @@ id = "transitlock"; name = "Transit Tube Lockdown Control"; pixel_y = 26; - req_access_txt = "39; 19" + req_access_txt = "19" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/vault{ @@ -40422,7 +40242,7 @@ id = "atmoslock"; name = "Atmospherics Lockdown Control"; pixel_x = -26; - req_access_txt = "25" + req_access_txt = "24" }, /turf/open/floor/plasteel/vault{ dir = 5 @@ -41434,14 +41254,14 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/door/airlock/hatch{ +/obj/machinery/door/airlock/external{ name = "MiniSat Exterior Access"; - req_one_access_txt = "32;19" + req_one_access_txt = "13;32" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, /turf/open/floor/plasteel/vault{ @@ -41463,15 +41283,15 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/machinery/door/airlock/hatch{ +/obj/machinery/door/airlock/external{ name = "MiniSat Exterior Access"; - req_one_access_txt = "32;19" + req_one_access_txt = "13;32" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 }, /turf/open/floor/plasteel/vault{ dir = 8 @@ -41493,6 +41313,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel/vault{ dir = 5 }, @@ -43393,7 +43215,7 @@ name = "Transit Tube Lockdown Control"; pixel_x = -38; pixel_y = -8; - req_access_txt = "39; 19" + req_access_txt = "19" }, /obj/machinery/modular_computer/console/preset/engineering{ dir = 4 @@ -51625,11 +51447,9 @@ }, /area/engine/engineering) "chD" = ( -/obj/machinery/vending/engivend, /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/engineering) "chE" = ( @@ -52419,8 +52239,6 @@ /turf/open/floor/plasteel/neutral, /area/engine/engineering) "cjo" = ( -/obj/machinery/vending/tool, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/engineering) "cjp" = ( @@ -53625,11 +53443,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/engineering) -"cma" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/engineering) "cmb" = ( /obj/machinery/vending/wardrobe/engi_wardrobe, /obj/effect/turf_decal/delivery, @@ -59151,12 +58964,10 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cxG" = ( -/obj/structure/closet/secure_closet/engineering_electrical, /obj/machinery/light_switch{ pixel_x = -26; pixel_y = 26 }, -/obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/engineering) "cxH" = ( @@ -59898,7 +59709,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/weightlifter, +/obj/structure/weightmachine/weightlifter, /turf/open/floor/plasteel/neutral, /area/crew_quarters/fitness/recreation) "czj" = ( @@ -59914,7 +59725,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/structure/stacklifter, +/obj/structure/weightmachine/stacklifter, /turf/open/floor/plasteel/neutral, /area/crew_quarters/fitness/recreation) "czl" = ( @@ -60614,36 +60425,10 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"cAL" = ( -/obj/machinery/rnd/production/protolathe/department/engineering, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/caution{ - dir = 1 - }, -/area/engine/engineering) "cAM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/start/station_engineer, -/obj/effect/turf_decal/loading_area, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/caution{ - dir = 1 - }, -/area/engine/engineering) -"cAN" = ( -/obj/machinery/computer/rdconsole/production{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/caution{ - dir = 1 - }, +/turf/open/floor/plasteel/neutral, /area/engine/engineering) "cAO" = ( /obj/structure/cable/white{ @@ -61448,16 +61233,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"cCs" = ( -/obj/structure/table/reinforced, -/obj/item/stack/packageWrap, -/obj/item/hand_labeler, -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/caution, -/area/engine/engineering) "cCt" = ( /turf/open/floor/plasteel/yellow/side{ dir = 6 @@ -62121,7 +61896,7 @@ }, /area/crew_quarters/fitness/recreation) "cDK" = ( -/obj/structure/stacklifter, +/obj/structure/weightmachine/stacklifter, /turf/open/floor/plasteel/neutral, /area/crew_quarters/fitness/recreation) "cDL" = ( @@ -62132,7 +61907,7 @@ /turf/open/floor/plasteel/neutral/side, /area/crew_quarters/fitness/recreation) "cDN" = ( -/obj/structure/weightlifter, +/obj/structure/weightmachine/weightlifter, /turf/open/floor/plasteel/neutral, /area/crew_quarters/fitness/recreation) "cDO" = ( @@ -63793,6 +63568,9 @@ /area/engine/engineering) "cHj" = ( /obj/effect/turf_decal/stripes/line, +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, /turf/open/floor/plasteel, /area/engine/engineering) "cHk" = ( @@ -68195,10 +67973,10 @@ /area/maintenance/port) "cQd" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/splatter, /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/effect/decal/cleanable/blood/old, /turf/open/floor/plasteel, /area/maintenance/port) "cQe" = ( @@ -87638,13 +87416,13 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "dGe" = ( -/obj/machinery/rnd/production/circuit_imprinter, /obj/item/reagent_containers/glass/beaker/sulphuric, /obj/machinery/airalarm{ dir = 8; pixel_x = 24 }, /obj/effect/turf_decal/bot, +/obj/machinery/rnd/production/circuit_imprinter/department/science, /turf/open/floor/plasteel, /area/science/robotics/lab) "dGf" = ( @@ -93572,7 +93350,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/decal/cleanable/blood/splatter, +/obj/effect/decal/cleanable/blood/old, /turf/open/floor/plasteel/grimy, /area/library/abandoned) "dSu" = ( @@ -94764,7 +94542,7 @@ /turf/open/floor/plating, /area/library/abandoned) "dVJ" = ( -/obj/effect/decal/cleanable/blood/splatter, +/obj/effect/decal/cleanable/blood/old, /turf/open/floor/wood{ icon_state = "wood-broken6" }, @@ -97962,10 +97740,10 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "edj" = ( -/obj/effect/decal/cleanable/blood/splatter, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/effect/decal/cleanable/blood/old, /turf/open/floor/plasteel, /area/maintenance/port/aft) "edk" = ( @@ -99494,13 +99272,6 @@ "ehv" = ( /turf/open/floor/plasteel/caution, /area/engine/engineering) -"ehw" = ( -/obj/machinery/rnd/production/circuit_imprinter, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/caution, -/area/engine/engineering) "ehy" = ( /obj/effect/turf_decal/stripes/line{ dir = 2 @@ -99604,6 +99375,13 @@ dir = 5 }, /area/science/mixing) +"eMS" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) "eTv" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -99630,6 +99408,26 @@ dir = 4 }, /area/science/misc_lab) +"fbA" = ( +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/storage_shared) +"fjK" = ( +/obj/machinery/door/poddoor/preopen{ + id = "transitlock"; + name = "Transit Tube Lockdown Door" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plasteel/caution, +/area/engine/storage_shared) "fno" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -99664,6 +99462,13 @@ }, /turf/open/floor/plating, /area/maintenance/port) +"fSj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) "gbV" = ( /obj/machinery/atmospherics/components/binary/pump/on{ dir = 1 @@ -99699,6 +99504,10 @@ dir = 5 }, /area/science/mixing) +"gPb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/neutral, +/area/engine/storage_shared) "gPv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -99734,6 +99543,18 @@ }, /turf/open/floor/plasteel, /area/maintenance/department/electrical) +"hcP" = ( +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/storage_shared) "hdH" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor{ @@ -99772,6 +99593,26 @@ }, /turf/open/floor/plasteel, /area/maintenance/port/aft) +"hsX" = ( +/obj/machinery/ore_silo, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/security/nuke_storage) +"huX" = ( +/obj/structure/cable/white{ + icon_state = "0-4" + }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/structure/cable/white, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/storage_shared) "hFo" = ( /obj/structure/lattice, /obj/structure/disposalpipe/segment{ @@ -99803,6 +99644,22 @@ }, /turf/open/floor/plasteel, /area/security/prison) +"hLm" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_y = 26 + }, +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) "hNZ" = ( /obj/structure/chair/office/light{ dir = 8 @@ -99815,6 +99672,18 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/science/research) +"igE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) "ixL" = ( /obj/structure/sign/warning/vacuum{ pixel_x = 32 @@ -99992,6 +99861,39 @@ dir = 10 }, /area/science/circuit) +"lec" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"leh" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/highsecurity{ + name = "Gravity Generator Foyer"; + req_access_txt = "10" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/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/engine/storage_shared) "loI" = ( /obj/machinery/autolathe, /obj/machinery/door/window/southleft{ @@ -100071,6 +99973,14 @@ }, /turf/open/floor/plating, /area/construction/mining/aux_base) +"lXl" = ( +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/structure/cable/white, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/storage_shared) "lXF" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -100109,6 +100019,22 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/circuit/green, /area/science/research/abandoned) +"mAW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator) +"mCL" = ( +/turf/closed/wall, +/area/engine/storage_shared) +"mHL" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/storage_shared) "mQE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -100131,10 +100057,46 @@ }, /turf/open/floor/engine, /area/science/mixing) +"nyB" = ( +/obj/structure/lattice, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"nBr" = ( +/turf/closed/wall/r_wall, +/area/engine/storage_shared) +"nDk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/storage_shared) +"nOg" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) "nSh" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) +"nSN" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"ovg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) "oIl" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -100168,6 +100130,15 @@ dir = 5 }, /area/science/mixing) +"oRB" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) "oSD" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/manifold/general/visible{ @@ -100234,6 +100205,15 @@ }, /turf/open/floor/plating, /area/science/research/abandoned) +"pCE" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/storage_shared) "pQm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ @@ -100241,6 +100221,16 @@ }, /turf/open/floor/plasteel/neutral, /area/science/research/abandoned) +"qcx" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/storage_shared) "qhc" = ( /obj/structure/table/reinforced, /obj/item/integrated_electronics/analyzer, @@ -100259,6 +100249,57 @@ dir = 5 }, /area/science/circuit) +"qNG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"qWg" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/stack/sheet/metal{ + amount = 30 + }, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/obj/item/crowbar/red, +/obj/item/wrench, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 32 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"qYo" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"qYx" = ( +/obj/structure/table/reinforced, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/rglass{ + amount = 30; + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/stack/cable_coil/white, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/storage_shared) "rhO" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -100272,6 +100313,24 @@ dir = 6 }, /area/science/circuit) +"rEm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"rOf" = ( +/obj/item/twohanded/required/kirbyplants/random, +/obj/effect/turf_decal/delivery, +/obj/machinery/light_switch{ + pixel_x = 22 + }, +/turf/open/floor/plasteel, +/area/engine/storage_shared) "rUD" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/manifold/general/visible{ @@ -100299,6 +100358,27 @@ /obj/machinery/door/poddoor/incinerator_toxmix, /turf/open/floor/engine/vacuum, /area/science/mixing) +"tbR" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/engine/storage_shared) +"tkj" = ( +/obj/structure/cable/white{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/storage_shared) "tmi" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -100314,6 +100394,13 @@ "tCh" = ( /turf/closed/wall, /area/science/misc_lab) +"tHE" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/engine/gravity_generator) "tMk" = ( /turf/open/floor/plasteel/white/side{ dir = 10 @@ -100376,6 +100463,19 @@ dir = 5 }, /area/medical/morgue) +"vwZ" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/stack/sheet/plasteel/fifty, +/obj/item/crowbar/power, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/storage_shared) "vAb" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -100384,6 +100484,28 @@ dir = 4 }, /area/science/mixing) +"vDU" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/storage_shared) +"vGz" = ( +/obj/machinery/power/apc/highcap/five_k{ + dir = 1; + name = "Gravity Generator APC"; + areastring = "/area/engine/gravity_generator"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) "wei" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -100402,6 +100524,16 @@ }, /turf/open/floor/plasteel/whitepurple/corner, /area/science/misc_lab) +"wEB" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/electrical, +/obj/item/wrench/power, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/storage_shared) "xaf" = ( /obj/machinery/door/airlock/public/glass{ name = "Holodeck Access" @@ -100485,7 +100617,7 @@ /turf/open/floor/plasteel, /area/science/research) "xXn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/engine/vacuum, /area/science/mixing) "xZM" = ( @@ -116557,14 +116689,14 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa +aad +ajr ajr -aaa ajr aad +ajr +ajr +ajr aad aad aad @@ -116815,13 +116947,13 @@ aaa aaa aaa aaa +aad aaa +aad aaa -aaa -ajr aad -ajr aaa +aad aaa aaa aad @@ -117071,14 +117203,14 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa ajr -aaa +ajr +aad +ajr +ajr +ajr +ajr aad -aaa aaa aaa aad @@ -117328,13 +117460,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa ajr aad -ajr +aad +aad +aad +aad +aad aad aad aad @@ -117585,15 +117717,15 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aad -aaa +ajr aad -aaa -aaa +bxC +bxC +bxC +bxC +bxC +bxC +bxC aaa aad aaa @@ -117842,15 +117974,15 @@ aaa aaa ajr ajr -aad -ajr -ajr -ajr -aad -ajr -ajr ajr aad +bxC +bAH +bAH +bEn +bAH +bAH +nyB ajr aad aad @@ -118099,15 +118231,15 @@ aaa aaa ajr aaa -aaa aad -aaa aad -aaa -aad -aaa -aad -aaa +bxC +bAH +bCw +bCx +bCy +bAH +bxC aad aaa aaa @@ -118357,14 +118489,14 @@ aaa ajr aad ajr -ajr -aad -ajr -ajr -ajr -ajr aad -ajr +bxC +bAH +bCx +bEo +bFW +bAH +bxC ajr ajr aad @@ -118615,13 +118747,13 @@ ajr aaa ajr aad -aad -aad -aad -aad -aad -aad -aad +bxC +bAH +bCy +bCx +bCw +bAH +nyB aad ajr aaa @@ -118873,11 +119005,11 @@ aaa ajr aad bxC -bxC -bxC -bxC -bxC -bxC +bAI +bCz +bAH +bFX +bHN bxC aad aad @@ -119127,14 +119259,14 @@ aaa aaa ajr aad -ajr +aaa aad bxC -bAH -bAH -bEn -bAH -bAH +bAJ +bCA +bEp +bCA +bHO bxC aad ajr @@ -119387,11 +119519,11 @@ aaa aad aad bxC -bAH -bCw -bCx -bCy -bAH +bAK +ovg +bEq +rEm +bHP bxC aad ajr @@ -119641,14 +119773,14 @@ aaa aaa ajr aad -ajr +aad aad bxC -bAH -bCx -bEo -bFW -bAH +vGz +tHE +bEr +mAW +igE bxC aad aad @@ -119898,14 +120030,14 @@ aaa aaa aad aaa -ajr +aad aad bxC -bAH -bCy -bCx -bCw -bAH +hLm +qNG +bEs +lec +oRB bxC aad ajr @@ -120155,14 +120287,14 @@ ajr aad ajr aad -ajr +aad aad bxC -bAI -bCz -bAH -bFX -bHN +bAN +bCE +bEt +bGb +bHS bxC aad aad @@ -120412,14 +120544,14 @@ aad aaa aad aaa -aaa -aad +nOg +bxC +bxC +bxC +bCF +bEu +bGc bxC -bAJ -bCA -bEp -bCA -bHO bxC aad bNH @@ -120669,14 +120801,14 @@ ajr ajr ajr ajr -aad -aad +abj bxC -bAK +bzd +bAO bCB -bEq +eMS bFY -bHP +fSj bxC aad bNF @@ -120926,12 +121058,12 @@ aad aaa aad aad -aad -aad -bxC -bAL -bCC -bEr +abj +bxD +bze +bAP +bCH +bEw bFZ bHQ bxC @@ -121183,12 +121315,12 @@ aRF aRF aRF aRF -aad -aad +abj bxC -bAM +bzf +bAO bCD -bEs +bEx bGa bHR bxC @@ -121440,15 +121572,15 @@ bpO brT bpO aRF -aad -aad -bxC -bAN -bCE -bEt -bGb -bHS -bxC +qYo +nBr +mCL +mCL +nDk +leh +mCL +nBr +bLF bLH bNK bPM @@ -121697,15 +121829,15 @@ bpO bpO btK aRF -aad -bxC -bxC -bxC -bCF -bEu -bGc -bxC -bxC +qYo +nBr +qWg +mHL +tkj +nSN +qcx +fjK +bLF bLI bNL bPN @@ -121954,10 +122086,10 @@ bpP brU btL aRF -abj -bxC -bzd -bAO +qYo +nBr +wEB +vDU bCG bEv bGd @@ -122211,12 +122343,12 @@ aZQ aUY aWw aRF -abj -bxD -bze -bAP -bCH -bEw +qYo +nBr +fbA +lXl +huX +pCE bGe bHU bJP @@ -122468,12 +122600,12 @@ aZR aRE aWx aRE -abj -bxC -bzf -bAO +qYo +nBr +qYx +vDU bCI -bEx +hcP bGf bHV bHV @@ -122726,12 +122858,12 @@ aMB aWy aMG aMG -bxE -bzg -bzg +nBr +vwZ +vDU bCJ bEy -bzg +rOf bHV bJQ bLL @@ -122958,7 +123090,7 @@ azN aFr aGT aIt -aJM +aJK aLh aMC aNZ @@ -122983,12 +123115,12 @@ brV btM buY bwr -bxE -bzh -bAQ -bCK +nBr +nBr +nBr +bxG bEz -bGg +nBr bHV bJR bLM @@ -123214,8 +123346,8 @@ aDl avZ aFs aGU -aIu -aJN +aIt +aJK aLi aMD aOa @@ -123240,9 +123372,9 @@ brW btN buZ bws -bxE +nBr bzi -bAR +tbR bCL bEA bGh @@ -123756,7 +123888,7 @@ bva bwu bxG bzk -bAR +gPb bCN bEC bGj @@ -124269,11 +124401,11 @@ btR bvc bww bxI -bzg -bzg -bCJ +mCL +mCL +brd bEE -bzg +mCL bHV bJW bLQ @@ -124814,8 +124946,8 @@ cuT cnE clX czt -cAL -cCs +cjn +ehv cDX cFP cHj @@ -125328,8 +125460,8 @@ car car cxF cjn -cAN -ehw +cjn +ehv cDZ cdN cHl @@ -125575,7 +125707,7 @@ cfF chy cjk ckE -cma +cjo cnG cpe cqx @@ -146372,7 +146504,7 @@ bvT bxi byz bxi -bvP +hsX but aad bHq diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 757cc9a57a..73b48b5ce2 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -2,10 +2,29 @@ "aaa" = ( /turf/open/space/basic, /area/space) +"aab" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 1; + name = "plasma mixer" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "aac" = ( /obj/effect/landmark/carpspawn, /turf/open/space, /area/space) +"aad" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/starboard) +"aae" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) "aaf" = ( /obj/structure/lattice, /turf/open/space, @@ -252,6 +271,15 @@ }, /turf/open/floor/plating, /area/security/prison) +"aaM" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) "aaN" = ( /obj/structure/cable{ icon_state = "0-2" @@ -294,6 +322,32 @@ }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) +"aaU" = ( +/obj/machinery/light_switch, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"aaV" = ( +/obj/machinery/atmospherics/components/unary/tank/toxins{ + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"aaW" = ( +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"aaX" = ( +/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 + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) "aaY" = ( /obj/structure/cable{ icon_state = "1-2" @@ -328,6 +382,21 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/security/prison) +"abd" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) "abe" = ( /turf/closed/wall, /area/security/prison) @@ -458,6 +527,14 @@ dir = 8 }, /area/security/prison) +"abt" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/item/storage/box/lights/mixed, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) "abu" = ( /obj/docking_port/stationary{ dir = 1; @@ -738,6 +815,18 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/security/prison) +"acd" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = -28 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/canister, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 2 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) "ace" = ( /obj/machinery/vending/sustenance{ desc = "A vending machine normally reserved for work camps."; @@ -1349,6 +1438,21 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) +"adk" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) +"adl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) "adm" = ( /obj/structure/table, /obj/item/flashlight/lamp, @@ -1529,6 +1633,20 @@ }, /turf/open/space, /area/space/nearstation) +"adH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"adI" = ( +/obj/effect/landmark/xeno_spawn, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) "adJ" = ( /obj/item/radio/intercom{ freerange = 0; @@ -1879,9 +1997,7 @@ lootcount = 3; name = "3maintenance loot spawner" }, -/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/armory_contraband/metastation, /turf/open/floor/plasteel/vault{ dir = 4 }, @@ -1952,6 +2068,12 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) +"aeD" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) "aeE" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -2677,6 +2799,13 @@ dir = 1 }, /area/security/prison) +"afQ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) "afR" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -3633,6 +3762,10 @@ icon_state = "platingdmg1" }, /area/maintenance/fore) +"ahT" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) "ahU" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/table, @@ -4117,6 +4250,11 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness/recreation) +"aiW" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) "aiX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, @@ -4218,6 +4356,12 @@ /obj/item/restraints/handcuffs/cable/pink, /turf/open/floor/plating, /area/maintenance/port/fore) +"ajk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) "ajl" = ( /obj/item/soap/deluxe, /obj/item/storage/secure/safe{ @@ -4306,6 +4450,13 @@ dir = 4 }, /area/security/warden) +"aju" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) "ajv" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -5874,6 +6025,16 @@ /obj/structure/window/reinforced, /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness/recreation) +"amB" = ( +/obj/structure/closet, +/obj/item/flashlight, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) "amC" = ( /obj/structure/chair{ dir = 4 @@ -6029,6 +6190,16 @@ icon_state = "platingdmg2" }, /area/maintenance/port) +"amV" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/item/extinguisher, +/obj/machinery/light/small, +/obj/structure/extinguisher_cabinet{ + pixel_y = -31 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) "amW" = ( /obj/structure/table/reinforced, /obj/item/folder, @@ -6271,6 +6442,14 @@ /obj/item/paper, /turf/open/floor/plasteel, /area/security/main) +"anz" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 2; + name = "output gas to space" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) "anA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, @@ -6700,6 +6879,16 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/security/warden) +"aov" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -31 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) "aow" = ( /obj/machinery/door/firedoor, /obj/structure/cable/yellow{ @@ -7374,6 +7563,10 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"apP" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/disposal/incinerator) "apQ" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_x = 32 @@ -7426,6 +7619,10 @@ /obj/item/assembly/flash/handheld, /turf/open/floor/plasteel, /area/security/main) +"apX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/starboard/aft) "apY" = ( /obj/structure/table, /obj/item/folder/red, @@ -7469,6 +7666,29 @@ /obj/item/clothing/head/soft/red, /turf/open/floor/plasteel/vault, /area/crew_quarters/fitness/recreation) +"aqe" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 4; + pixel_y = 5 + }, +/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 = 6 + }, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/syringe, +/obj/item/reagent_containers/syringe, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) "aqf" = ( /obj/structure/closet/lasertag/blue, /turf/open/floor/plasteel/vault, @@ -7924,6 +8144,21 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"arh" = ( +/obj/item/reagent_containers/glass/bottle/toxin{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/reagentgrinder{ + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) "ari" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -8112,6 +8347,10 @@ dir = 4 }, /area/crew_quarters/dorms) +"arF" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/starboard/aft) "arG" = ( /obj/structure/closet, /obj/item/storage/box/lights/mixed, @@ -9082,6 +9321,18 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"atw" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 2; + name = "Incinerator Output Pump" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/space, +/area/maintenance/disposal/incinerator) "atx" = ( /obj/structure/cable/yellow{ icon_state = "2-4" @@ -9152,6 +9403,12 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"atC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) "atD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -9174,6 +9431,12 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"atF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) "atG" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -9217,6 +9480,16 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"atJ" = ( +/obj/machinery/sparker/toxmix{ + dir = 2; + pixel_x = 25 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing) "atK" = ( /obj/machinery/computer/gulag_teleporter_computer{ dir = 1 @@ -9926,11 +10199,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/fore) -"avr" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/maintenance/starboard) "avs" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, @@ -13069,6 +13337,7 @@ "aCd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/bot_white/right, +/obj/machinery/ore_silo, /turf/open/floor/plasteel/vault{ dir = 1 }, @@ -24863,7 +25132,7 @@ name = "Transit Tube Lockdown"; pixel_x = -24; pixel_y = -5; - req_access_txt = "24" + req_access_txt = "19" }, /obj/machinery/button/door{ desc = "A remote control-switch for secure storage."; @@ -26165,9 +26434,7 @@ }, /area/crew_quarters/heads/chief) "bek" = ( -/obj/structure/closet/secure_closet/engineering_chief{ - req_access_txt = "0" - }, +/obj/structure/closet/secure_closet/engineering_chief, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -26211,14 +26478,14 @@ name = "Engineering Lockdown"; pixel_x = -24; pixel_y = -6; - req_access_txt = "1" + req_one_access_txt = "1;10" }, /obj/machinery/button/door{ id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = -24; pixel_y = 5; - req_access_txt = "1" + req_one_access_txt = "1;24" }, /obj/structure/cable/yellow{ icon_state = "2-4" @@ -26257,8 +26524,12 @@ /obj/machinery/light/small{ dir = 8 }, +/obj/structure/cable/yellow, +/obj/machinery/power/apc/auto_name/west{ + pixel_x = -26 + }, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/storage_shared) "beq" = ( /obj/structure/sign/warning/vacuum/external, /turf/closed/wall/r_wall, @@ -27911,8 +28182,6 @@ }, /area/engine/break_room) "bhW" = ( -/obj/item/folder/yellow, -/obj/item/folder/yellow, /obj/machinery/light{ dir = 1 }, @@ -27920,8 +28189,9 @@ pixel_y = 32 }, /obj/structure/table/glass, +/obj/item/folder/yellow, /obj/item/storage/firstaid/fire{ - pixel_y = 8 + pixel_y = 6 }, /turf/open/floor/plasteel/yellow/side{ dir = 1 @@ -29538,7 +29808,7 @@ /obj/structure/cable/yellow{ icon_state = "2-4" }, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/engine/break_room) "blk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -29547,6 +29817,9 @@ /obj/structure/cable/yellow{ icon_state = "1-8" }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, /turf/open/floor/plasteel, /area/engine/break_room) "bll" = ( @@ -29555,6 +29828,7 @@ /area/engine/break_room) "bln" = ( /obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/engine/break_room) "blo" = ( @@ -29573,10 +29847,6 @@ }, /turf/open/floor/plasteel, /area/engine/break_room) -"blq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) "blr" = ( /obj/machinery/light{ dir = 4 @@ -30294,6 +30564,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/engine/break_room) "bna" = ( @@ -30312,7 +30585,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/engine/break_room) "bnc" = ( @@ -30322,6 +30594,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/engine/break_room) "bnd" = ( @@ -31326,28 +31599,24 @@ }, /area/hallway/primary/starboard) "bpg" = ( -/obj/machinery/vending/cigarette, +/obj/structure/table/reinforced, +/obj/machinery/microwave{ + pixel_y = 6 + }, /turf/open/floor/plasteel, /area/engine/break_room) "bph" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, -/area/engine/break_room) +/area/engine/storage_shared) "bpi" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 }, /turf/closed/wall, -/area/engine/break_room) -"bpj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 6 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/storage_shared) "bpk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ @@ -31416,6 +31685,7 @@ }, /area/security/checkpoint/customs) "bpu" = ( +/obj/structure/lattice, /turf/closed/wall/r_wall, /area/space/nearstation) "bpv" = ( @@ -32557,7 +32827,7 @@ "brE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/storage_shared) "brI" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -34204,7 +34474,7 @@ /obj/structure/closet/secure_closet/engineering_electrical, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/storage_shared) "bvf" = ( /obj/item/radio/intercom{ broadcasting = 0; @@ -34253,7 +34523,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/storage_shared) "bvh" = ( /obj/machinery/computer/rdconsole/production{ dir = 1 @@ -34262,14 +34532,14 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/storage_shared) "bvi" = ( /obj/machinery/rnd/production/protolathe/department/engineering, /obj/effect/turf_decal/bot{ dir = 1 }, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/storage_shared) "bvk" = ( /obj/machinery/door/poddoor/preopen{ id = "atmos"; @@ -36692,10 +36962,7 @@ /area/crew_quarters/bar) "bAq" = ( /obj/structure/table/wood/poker, -/obj/effect/spawner/lootdrop{ - loot = list(/obj/item/gun/ballistic/revolver/russian = 5, /obj/item/storage/box/syndie_kit/throwing_weapons, /obj/item/toy/cards/deck/syndicate = 2); - name = "gambling valuables spawner" - }, +/obj/effect/spawner/lootdrop/gambling, /turf/open/floor/wood, /area/crew_quarters/bar) "bAr" = ( @@ -43531,12 +43798,6 @@ dir = 1 }, /area/engine/atmos) -"bPv" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bPw" = ( /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/atmospherics/components/binary/pump{ @@ -47625,19 +47886,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) -"bYs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bYt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) "bYu" = ( /obj/item/cigbutt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -48129,18 +48377,6 @@ }, /turf/open/floor/plating, /area/hallway/secondary/service) -"bZz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bZA" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/starboard) "bZB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -48859,20 +49095,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) -"caW" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"caX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light_switch, -/turf/closed/wall, -/area/maintenance/disposal/incinerator) "caY" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -49707,50 +49929,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) -"ccE" = ( -/obj/machinery/atmospherics/components/unary/tank/toxins{ - dir = 4 - }, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"ccF" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "plasma tank pump" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"ccG" = ( -/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 - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"ccH" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) "ccI" = ( /obj/structure/cable/yellow{ icon_state = "1-8" @@ -50321,51 +50499,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/starboard) -"cdY" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/item/storage/box/lights/mixed, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/starboard) -"cdZ" = ( -/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/floorgrime, -/area/maintenance/disposal/incinerator) -"cea" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "input port pump" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"ceb" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cec" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) "ced" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -50980,62 +51113,12 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) -"cfm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"cfn" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4; - name = "input gas connector port" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cfo" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cfp" = ( -/obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) "cfq" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) -"cfr" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "input port pump" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cfs" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) "cft" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -51517,12 +51600,6 @@ }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) -"cgw" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) "cgx" = ( /obj/structure/cable{ icon_state = "1-2" @@ -52074,15 +52151,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) -"chF" = ( -/obj/structure/closet, -/obj/item/flashlight, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) "chG" = ( /obj/structure/reagent_dispensers/fueltank, /obj/item/storage/toolbox/emergency, @@ -52092,42 +52160,6 @@ }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) -"chH" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/item/extinguisher, -/obj/machinery/light/small, -/obj/structure/extinguisher_cabinet{ - pixel_y = -31 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"chI" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/binary/valve{ - dir = 2; - name = "output gas to space" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"chJ" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = -31 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) "chM" = ( /obj/structure/window/reinforced{ dir = 1; @@ -53375,49 +53407,11 @@ "ckz" = ( /obj/structure/table, /obj/item/storage/toolbox/emergency, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ckA" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/drinkingglass{ - pixel_x = 4; - pixel_y = 5 - }, -/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 = 6 - }, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/syringe, -/obj/item/reagent_containers/syringe, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ckB" = ( -/obj/item/reagent_containers/glass/bottle/toxin{ - pixel_x = 4; - pixel_y = 2 - }, -/obj/structure/table, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/reagentgrinder{ - pixel_y = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"ckC" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 2; - name = "Incinerator Output Pump" - }, -/obj/structure/disposalpipe/segment, -/turf/open/space, -/area/maintenance/disposal/incinerator) "ckD" = ( /obj/machinery/light/small{ dir = 8 @@ -54539,12 +54533,6 @@ /obj/machinery/chem_heater, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"cnd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ - dir = 1 - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) "cne" = ( /obj/machinery/igniter/incinerator_atmos, /obj/structure/cable{ @@ -58122,14 +58110,12 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cud" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, /obj/machinery/light{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, /area/science/circuit) "cue" = ( /obj/structure/cable{ @@ -59087,11 +59073,11 @@ /turf/open/floor/plating, /area/maintenance/aft) "cwd" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, /area/science/circuit) "cwe" = ( /obj/structure/cable, @@ -59935,6 +59921,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, /turf/open/floor/plasteel/white, /area/science/circuit) "cxQ" = ( @@ -63156,16 +63145,6 @@ }, /turf/open/floor/engine/vacuum, /area/science/mixing) -"cEt" = ( -/obj/machinery/sparker/toxmix{ - dir = 2; - 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) "cEu" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 @@ -64471,8 +64450,8 @@ /obj/machinery/light{ dir = 8 }, -/obj/machinery/rnd/production/circuit_imprinter, /obj/effect/turf_decal/bot, +/obj/machinery/rnd/production/circuit_imprinter/department/science, /turf/open/floor/plasteel, /area/science/robotics/lab) "cGW" = ( @@ -70627,6 +70606,12 @@ dir = 8 }, /area/engine/atmos) +"cVU" = ( +/turf/open/floor/plasteel/purple/corner{ + icon_state = "purplecorner"; + dir = 1 + }, +/area/science/circuit) "cWA" = ( /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, @@ -74376,13 +74361,6 @@ }, /turf/open/floor/plating, /area/chapel/main) -"dka" = ( -/obj/structure/noticeboard{ - dir = 1; - pixel_y = -32 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) "dlI" = ( /turf/closed/wall/r_wall, /area/engine/supermatter) @@ -75665,7 +75643,9 @@ /area/maintenance/starboard/fore) "dGH" = ( /obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 10 + }, /area/science/circuit) "dIs" = ( /obj/machinery/door/airlock/external{ @@ -75686,6 +75666,10 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) +"dQV" = ( +/obj/structure/grille/broken, +/turf/open/space/basic, +/area/space/nearstation) "dYu" = ( /obj/machinery/door/airlock/external{ name = "Auxiliary Airlock" @@ -75721,16 +75705,19 @@ /turf/open/floor/plating, /area/maintenance/starboard) "eqq" = ( -/obj/item/screwdriver, -/obj/structure/table/reinforced, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + dir = 2; + name = "Science Requests Console"; + pixel_y = 30; + receive_ore_updates = 1 }, -/obj/item/stack/sheet/metal/ten, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/caution/stand_clear/white, +/turf/open/floor/plasteel/purple/side, /area/science/circuit) "eqG" = ( /obj/effect/turf_decal/stripes/line{ @@ -75742,13 +75729,9 @@ /obj/machinery/vr_sleeper, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) -"evy" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/space) "eEe" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 10 }, /turf/open/floor/plasteel/white, /area/science/circuit) @@ -75781,6 +75764,11 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/engine/engineering) +"fwb" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) "fDD" = ( /obj/machinery/light_switch{ pixel_y = -25 @@ -75788,7 +75776,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, /area/science/circuit) "fFM" = ( /obj/structure/cable/yellow{ @@ -75798,9 +75788,9 @@ dir = 4 }, /obj/structure/disposalpipe/segment{ - dir = 10 + dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/purple/corner, /area/science/circuit) "fHj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -75814,11 +75804,21 @@ }, /turf/open/floor/plasteel, /area/engine/break_room) +"gkj" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, +/area/science/circuit) "gnZ" = ( /obj/item/radio/intercom{ pixel_y = -30 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, /area/science/circuit) "gqA" = ( /obj/machinery/button/door{ @@ -75859,6 +75859,7 @@ /obj/structure/chair/office/light{ dir = 1 }, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel/white, /area/science/circuit) "gHh" = ( @@ -75883,11 +75884,19 @@ }, /turf/open/floor/plating, /area/maintenance/aft) -"gRS" = ( +"gNx" = ( /obj/structure/table/reinforced, -/obj/item/integrated_electronics/analyzer, -/obj/item/integrated_circuit_printer, -/turf/open/floor/plasteel/white, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/machinery/computer/security/telescreen/circuitry{ + pixel_y = 30 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 8 + }, /area/science/circuit) "gXY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -75896,11 +75905,20 @@ /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "gYu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/engine/storage_shared) +"hfn" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" }, +/obj/machinery/vending/cigarette, /turf/open/floor/plasteel, /area/engine/break_room) +"hkq" = ( +/turf/open/floor/plasteel/caution/corner, +/area/engine/storage_shared) "hvt" = ( /obj/structure/kitchenspike_frame, /obj/effect/decal/cleanable/blood/gibs/old, @@ -75963,8 +75981,9 @@ /obj/effect/turf_decal/bot{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/storage_shared) "iLj" = ( /obj/structure/table, /turf/open/floor/plating, @@ -75976,11 +75995,6 @@ }, /turf/open/floor/plating, /area/quartermaster/storage) -"jnH" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/engine/break_room) "jrE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -75993,14 +76007,18 @@ "jwW" = ( /turf/closed/wall/mineral/plastitanium, /area/crew_quarters/fitness/recreation) +"jxg" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/whitepurple/side, +/area/science/circuit) "jyv" = ( /obj/structure/table/reinforced, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/machinery/computer/security/telescreen/circuitry{ - pixel_x = 30 +/obj/structure/sign/poster/random{ + pixel_y = 32 }, -/turf/open/floor/plasteel/white, +/obj/item/stack/sheet/glass/fifty, +/obj/item/multitool, +/turf/open/floor/plasteel/purple/side, /area/science/circuit) "jyQ" = ( /obj/structure/cable{ @@ -76031,17 +76049,19 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, /obj/structure/sign/poster/official/random{ pixel_y = 32 }, -/turf/open/floor/plasteel/white, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 8 + }, /area/science/circuit) "kfu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, /area/science/circuit) "krD" = ( @@ -76056,9 +76076,13 @@ /turf/open/floor/plasteel, /area/hydroponics) "kxk" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel/white, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/auto_name/west{ + pixel_x = -25 + }, +/turf/open/floor/plasteel/stairs/left, /area/science/circuit) "kys" = ( /obj/structure/cable/yellow{ @@ -76106,10 +76130,10 @@ /obj/item/multitool, /obj/item/screwdriver, /obj/structure/table/reinforced, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/computer/security/telescreen/circuitry{ + pixel_y = 30 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/purple/side, /area/science/circuit) "kVo" = ( /obj/structure/cable/yellow{ @@ -76123,6 +76147,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/structure/sign/poster/random{ + pixel_x = -32 + }, /turf/open/floor/plasteel, /area/science/circuit) "llb" = ( @@ -76131,25 +76158,20 @@ /turf/open/floor/plasteel/white, /area/science/circuit) "lsv" = ( -/obj/machinery/power/apc{ - areastring = "/area/science/circuit"; - dir = 1; - name = "Circuitry Lab APC"; - pixel_y = 30 - }, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, /obj/structure/table/reinforced, -/obj/item/multitool, -/turf/open/floor/plasteel/white, +/obj/item/stack/sheet/metal/ten, +/obj/item/screwdriver, +/turf/open/floor/plasteel/purple/side, /area/science/circuit) "lzk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, /area/science/circuit) "lGS" = ( /obj/docking_port/stationary/public_mining_dock, @@ -76192,6 +76214,10 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"msD" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/storage_shared) "mvj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -76206,14 +76232,19 @@ dir = 1; pixel_y = -24 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, /area/science/circuit) "mzU" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/turf/open/floor/plasteel, -/area/engine/break_room) +/turf/open/floor/plasteel/caution/corner, +/area/engine/storage_shared) "mWg" = ( /obj/structure/girder, /obj/structure/grille, @@ -76228,19 +76259,6 @@ }, /turf/open/floor/plating, /area/engine/break_room) -"nnK" = ( -/obj/item/stack/sheet/glass/fifty, -/obj/item/paper_bin, -/obj/item/pen, -/obj/structure/table/reinforced, -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) "noG" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -76278,6 +76296,9 @@ }, /turf/open/floor/plasteel, /area/construction/storage/wing) +"nSo" = ( +/turf/open/floor/plasteel/whitepurple/side, +/area/science/circuit) "nXA" = ( /obj/structure/rack{ icon = 'icons/obj/stationobjs.dmi'; @@ -76287,6 +76308,11 @@ /obj/item/storage/fancy/candle_box, /turf/open/floor/engine/cult, /area/library) +"nYJ" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space/basic, +/area/space/nearstation) "obb" = ( /obj/structure/target_stake, /obj/effect/turf_decal/stripes/line{ @@ -76313,67 +76339,65 @@ dir = 1 }, /obj/structure/table/reinforced, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, /obj/item/stock_parts/cell/high, /obj/item/stock_parts/cell/high, -/obj/machinery/computer/security/telescreen/circuitry{ - pixel_y = 30 - }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/purple/side, /area/science/circuit) "ohj" = ( -/obj/item/integrated_electronics/analyzer, -/obj/item/integrated_electronics/debugger, -/obj/item/integrated_electronics/wirer, -/obj/structure/table/reinforced, +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel/white, /area/science/circuit) +"oje" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, +/area/science/circuit) "oub" = ( /obj/structure/sign/poster/official/random, /turf/closed/wall, /area/hydroponics) "owR" = ( /turf/closed/wall, -/area/engine/break_room) +/area/engine/storage_shared) "oJW" = ( /obj/structure/sign/poster/random{ pixel_y = 32 }, /obj/machinery/camera{ - c_tag = "Engineering - Foyer - Storage"; + c_tag = "Engineering - Foyer - Shared Storage"; dir = 8 }, /obj/machinery/light/small{ dir = 4 }, -/turf/open/floor/plasteel, -/area/engine/break_room) +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/engine/storage_shared) "oLW" = ( /obj/structure/table/reinforced, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/requests_console{ - department = "Science"; - departmentType = 2; - dir = 2; - name = "Science Requests Console"; - pixel_y = 30; - receive_ore_updates = 1 - }, /obj/item/integrated_electronics/debugger, -/turf/open/floor/plasteel/white, +/obj/structure/sign/poster/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/purple/side, /area/science/circuit) "oRL" = ( /obj/docking_port/stationary{ dir = 2; dwidth = 11; - height = 15; + height = 22; id = "whiteship_home"; name = "SS13: Auxiliary Dock, Station-Port"; - width = 28 + width = 35 }, /turf/open/space/basic, /area/space) @@ -76384,6 +76408,9 @@ }, /obj/item/paper_bin, /obj/item/pen, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/science/circuit) "oZg" = ( @@ -76397,12 +76424,6 @@ /obj/structure/grille, /turf/open/floor/plating, /area/maintenance/port/aft) -"pmc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) "pvA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -76473,10 +76494,18 @@ }, /turf/open/floor/plating, /area/maintenance/aft) +"qcZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/stairs/right, +/area/science/circuit) "qdT" = ( /obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/storage_shared) "qhe" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -76510,13 +76539,43 @@ /obj/item/storage/photo_album, /turf/open/floor/engine/cult, /area/library) +"qLL" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, +/area/science/circuit) +"qQn" = ( +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/purple/side{ + dir = 8 + }, +/area/science/circuit) "qRM" = ( /obj/machinery/camera{ c_tag = "Research Division Circuitry Lab"; dir = 1; network = list("ss13","rd") }, -/turf/open/floor/plasteel/white, +/obj/structure/noticeboard{ + dir = 1; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, /area/science/circuit) "qVR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -76549,6 +76608,15 @@ dir = 1 }, /area/science/lab) +"rCu" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) "rQK" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -76568,13 +76636,21 @@ /obj/machinery/vending/snack/random, /turf/open/floor/plasteel, /area/science/mixing) +"rWg" = ( +/obj/item/twohanded/required/kirbyplants/random, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/engine/storage_shared) "sao" = ( /obj/machinery/vending/tool, /obj/effect/turf_decal/bot{ dir = 1 }, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/storage_shared) "sdi" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -76585,6 +76661,28 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/space/nearstation) +"sjY" = ( +/obj/item/integrated_electronics/analyzer, +/obj/item/integrated_electronics/debugger, +/obj/item/integrated_electronics/wirer, +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 8 + }, +/area/science/circuit) +"svg" = ( +/obj/structure/lattice, +/obj/structure/girder/reinforced, +/turf/open/space/basic, +/area/space/nearstation) +"szA" = ( +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/science/circuit) "sFv" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -76600,7 +76698,7 @@ }, /obj/machinery/door/firedoor, /turf/open/floor/plating, -/area/science/circuit) +/area/maintenance/starboard/aft) "sGh" = ( /obj/structure/cable{ icon_state = "1-2" @@ -76626,6 +76724,10 @@ "sJW" = ( /turf/closed/wall/mineral/plastitanium, /area/engine/break_room) +"thn" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/side, +/area/science/circuit) "tsx" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -76635,12 +76737,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) -"txj" = ( -/obj/structure/chair/office/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) "tDM" = ( /obj/machinery/door/airlock/engineering/glass/critical{ heat_proof = 1; @@ -76683,20 +76779,27 @@ "urv" = ( /turf/closed/wall/mineral/plastitanium, /area/security/prison) +"usN" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/caution/corner, +/area/engine/storage_shared) "uun" = ( /obj/machinery/vending/assist, /turf/open/floor/plasteel, /area/science/mixing) "uEH" = ( /obj/machinery/door/airlock/engineering/glass{ - name = "Engineering Storage"; + name = "Shared Engineering Storage"; req_one_access_txt = "32;19" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/delivery, /obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/break_room) +/turf/open/floor/plasteel, +/area/engine/storage_shared) "uGW" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -76732,18 +76835,20 @@ /area/science/research) "uTS" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 + dir = 9 }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-10" +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/plasteel/white, /area/science/circuit) "uYk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 1 }, -/turf/open/floor/plasteel/white, /area/science/circuit) "vgd" = ( /obj/item/taperecorder, @@ -76768,26 +76873,19 @@ dir = 8 }, /area/crew_quarters/fitness/recreation) -"vyx" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) +"vxq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/science/circuit) "vzO" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/engine/storage_shared) "vLD" = ( /obj/structure/lattice, /turf/open/space/basic, /area/space) -"wgw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) "wiZ" = ( /obj/machinery/door/airlock/external{ name = "Security External Airlock"; @@ -76836,8 +76934,18 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/science/circuit) +"wPB" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/storage_shared) "wRy" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -76848,6 +76956,10 @@ "xkG" = ( /obj/item/integrated_electronics/wirer, /obj/structure/table/reinforced, +/obj/item/integrated_electronics/analyzer{ + pixel_x = -4; + pixel_y = 4 + }, /turf/open/floor/plasteel/white, /area/science/circuit) "xse" = ( @@ -76905,7 +77017,12 @@ /obj/structure/sign/poster/official/random{ pixel_y = -32 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, /area/science/circuit) "ybn" = ( /obj/structure/chair/comfy/brown, @@ -76932,8 +77049,14 @@ /turf/open/floor/plasteel, /area/science/circuit) "ykE" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, /area/science/circuit) (1,1,1) = {" @@ -109232,7 +109355,7 @@ dDA cBu cCv cyK -cEt +atJ tXK cGj cHe @@ -113339,7 +113462,7 @@ upN cxN cxN qJZ -cxO +uYk krD czG cAN @@ -113592,9 +113715,9 @@ cuZ fFM cud kxk -cxO -cxO -cxO +szA +szA +szA dGH mzh krD @@ -113848,11 +113971,11 @@ cqY cuZ jLY lzk -lzk +qcZ cwd kfu cxP -cxO +nSo gnZ krD czI @@ -114107,9 +114230,9 @@ cuZ obb krD kOt -gRS +llb oUA -cxO +nSo qRM krD aaf @@ -114366,9 +114489,9 @@ krD oLW gGT wPk -dGH -dka -krD +nSo +uYk +noG aaf aaa aaf @@ -114622,10 +114745,10 @@ lMz krD ocT xkG -uTS -cxO +wPk +nSo ykE -krD +noG aaa aaa aaa @@ -114863,7 +114986,7 @@ xVl dLK alq cdX -cfm +adH apc chE dvY @@ -114878,10 +115001,10 @@ dvY mjJ krD eqq -llb +vxq uTS -cxO -cxO +nSo +qLL krD aaa aaa @@ -115117,13 +115240,13 @@ bVB bVC nAG pCV -caW -alq -cdY -bPl -avr -chF -dvY +aaM +bmR +abt +adI +ajk +amB +apX ckz ciL dwY @@ -115132,13 +115255,13 @@ ciL cgs csc dvY -evy +dxk krD lsv -txj +llb eEe -cxO -cxO +thn +oje krD aaa aaa @@ -115373,7 +115496,7 @@ uHc uJU uJU pvA -bZA +aae bZE bZE bZE @@ -115381,7 +115504,7 @@ bZE bZE bZE bZE -ckA +aqe dwQ cnb cou @@ -115389,14 +115512,14 @@ cpK ciL csc dvY -vLD +lMJ krD jyv ohj -nnK -cxO cxO -krD +jxg +gkj +noG aaa aaa aaa @@ -115630,15 +115753,15 @@ alq apb apb bXa -bZz +apc bZE -ccE -cdZ -cfn +aaV +acd +aeD cgt chG bZE -ckB +arh cmb cnc cov @@ -115646,14 +115769,14 @@ cpL crb csd dvY -vLD -krD +lMJ krD +gNx +sjY +qQn +cVU noG -krD noG -krD -krD aaa aaa aaa @@ -115887,15 +116010,15 @@ alq bVC bWY bYr -bZz +apc bZE -ccF -cea -cea +aaW +aaW +aaW cgu -chH -bZE -dvY +amV +bZC +arF dvY dvY dvY @@ -115904,12 +116027,12 @@ dvY dvY dvY aaf -aaf -aaf -aaa -aaa -aaa -aaa +krD +krD +krD +krD +noG +noG aaa aaa aaa @@ -116143,16 +116266,16 @@ bTf alq diu bWZ -bYs -bZB +aad +apc bZE -ccG -ceb -cfo +aaX +adk +afQ cgv -chI +anz ciY -ckC +atw cmc cmc cmc @@ -116160,15 +116283,15 @@ cpM crc aaf ctl +lMJ +lMJ +lMJ +lMJ +lMJ +lMJ +lMJ aaa aaf -aaf -anT -anT -anT -aaf -aaf -aaf lMJ lMJ aaf @@ -116400,16 +116523,16 @@ bTg alq bVE bXa -bYt -bZC -caX -ccH -cec -cfp -vyx -chJ -wgw -pmc +apc +bZE +aaU +abd +adl +ahT +cfq +aov +cgz +atC cgz cgz cgz @@ -116418,16 +116541,16 @@ crd ack ack aaf +aav +aav aaf +anT +anT +anT +aaf +lMJ aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +lMJ aaf aaf aaf @@ -116662,30 +116785,30 @@ bZD caY ccI ced -cfq -cgw -cfs +aaW +aju +apP ciZ ckD ciZ -cnd +atF cgz cgz cre aaa ack aaa +aav aaa aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa +dQV +fwb +nYJ +fwb +fwb aaf aaa aqB @@ -116892,8 +117015,8 @@ bhU bjF blk bmZ -bpg -bie +hfn +wPB bep vzO bxd @@ -116919,7 +117042,7 @@ bZE caZ ccJ cee -cfr +cgx cgx cgx cja @@ -117150,8 +117273,8 @@ bjG bll bna kCw -bie -bjL +msD +hkq bve bxd byS @@ -117176,7 +117299,7 @@ bZE cba ccK cef -cfs +aiW czH cLC cjb @@ -117403,11 +117526,11 @@ aWw aWw aWw bhW -hKs -blq +rCu +bjL bnb -jnH -jnH +owR +owR gYu qdT bxd @@ -117660,12 +117783,12 @@ dgz aBI byK bhX -bjG +hKs bln bnc bph iHl -bln +usN bvg bxd byU @@ -117922,7 +118045,7 @@ ecs rxn bpi sao -bjL +gYu bvh bxd byV @@ -118437,7 +118560,7 @@ bne owR owR oJW -qdT +rWg bxc byW bAG @@ -118691,7 +118814,7 @@ bib bjJ blp bnf -bpj +bpg owR owR owR @@ -120762,7 +120885,7 @@ bIX bKE bKE dhh -bPv +aab bKE bKE bKE @@ -123562,10 +123685,10 @@ anT anT anT anT +aqB anT -aaf -aaa -aaa +fwb +fwb aaf aaa aaa @@ -123811,13 +123934,13 @@ bpu bpu bpu bpu +svg bpu bpu bpu bpu -bpu -bpu -aaa +svg +lMJ aaa aaa aaf @@ -124074,9 +124197,9 @@ anT anT anT aqB -aaf -aaf -aaf +anT +anT +anT aaf aaa aaf diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index 6dd96ca6d1..63bb052228 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -515,6 +515,9 @@ /area/mine/production) "bE" = ( /obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, /turf/open/floor/plasteel/purple/corner, /area/mine/production) "bF" = ( @@ -527,6 +530,9 @@ /obj/item/stack/packageWrap, /obj/item/stack/packageWrap, /obj/item/hand_labeler, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, /turf/open/floor/plasteel/purple/corner{ dir = 8 }, @@ -607,6 +613,9 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 1 + }, /turf/open/floor/plasteel/brown{ dir = 4 }, @@ -898,6 +907,9 @@ }, /area/mine/production) "cI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/purple/side{ dir = 4 }, @@ -921,10 +933,6 @@ "cM" = ( /turf/closed/wall, /area/mine/living_quarters) -"cN" = ( -/obj/structure/sign/warning/electricshock, -/turf/closed/wall, -/area/mine/living_quarters) "cO" = ( /obj/item/radio/intercom{ dir = 8; @@ -939,6 +947,9 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 30 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 1 + }, /turf/open/floor/plasteel/brown{ dir = 4 }, @@ -967,6 +978,9 @@ dir = 1 }, /obj/structure/closet/crate/secure/loot, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, /turf/open/floor/plating, /area/mine/living_quarters) "cU" = ( @@ -1070,6 +1084,7 @@ pixel_x = 1; pixel_y = 25 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/dark, /area/mine/maintenance) "di" = ( @@ -1104,6 +1119,7 @@ }, /area/mine/living_quarters) "dm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/whiteblue/side{ dir = 1 }, @@ -1134,12 +1150,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, +/obj/machinery/meter, /turf/open/floor/plating, /area/mine/living_quarters) "dq" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 }, /turf/open/floor/plating, /area/mine/living_quarters) @@ -1176,6 +1192,9 @@ /obj/structure/cable{ icon_state = "1-4" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 1 + }, /turf/open/floor/circuit, /area/mine/maintenance) "dy" = ( @@ -1236,6 +1255,9 @@ /turf/open/floor/plasteel/white, /area/mine/living_quarters) "dC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/mine/living_quarters) "dD" = ( @@ -1272,18 +1294,19 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, +/obj/machinery/atmospherics/components/binary/pump/on, /turf/open/floor/plating, /area/mine/living_quarters) "dI" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 + dir = 5 }, /turf/open/floor/plating, /area/mine/living_quarters) "dJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, /turf/open/floor/plasteel/purple/side{ dir = 8 }, @@ -1441,6 +1464,7 @@ c_tag = "Crew Area Hallway West"; network = list("mine") }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, /area/mine/living_quarters) "ee" = ( @@ -1500,12 +1524,18 @@ name = "Processing Area"; req_access_txt = "48" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/mine/living_quarters) "em" = ( /obj/machinery/light{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, /turf/open/floor/plasteel/brown{ dir = 4 }, @@ -1525,16 +1555,18 @@ /turf/open/floor/plating, /area/mine/production) "ep" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel, /area/mine/living_quarters) "eq" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /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" = ( @@ -1572,44 +1604,53 @@ /obj/structure/cable{ icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /turf/open/floor/plasteel, /area/mine/living_quarters) "ev" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /turf/open/floor/plasteel, /area/mine/living_quarters) "ew" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, /turf/open/floor/plasteel/brown{ dir = 4 }, /area/mine/living_quarters) "ex" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/door/airlock/mining/glass{ name = "Mining Station Bridge"; req_access_txt = "48" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/mine/living_quarters) "ey" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/cable{ @@ -1620,7 +1661,10 @@ }, /area/mine/living_quarters) "ez" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/cable{ @@ -1629,25 +1673,31 @@ /turf/open/floor/plasteel, /area/mine/production) "eA" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/door/airlock/mining/glass{ name = "Mining Station Bridge"; req_access_txt = "48" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/mine/production) "eB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /turf/open/floor/plasteel/brown{ dir = 8 }, @@ -1710,23 +1760,36 @@ /area/mine/production) "eK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/brown, /area/mine/living_quarters) "eL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/purple/corner{ dir = 8 }, /area/mine/living_quarters) "eM" = ( /obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /turf/open/floor/plasteel, /area/mine/living_quarters) "eN" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, /turf/open/floor/plasteel, /area/mine/living_quarters) "eO" = ( /obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, /turf/open/floor/plasteel/purple/corner{ dir = 4 }, @@ -1746,7 +1809,6 @@ /turf/open/floor/plasteel, /area/mine/living_quarters) "eR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/glass{ name = "Break Room" }, @@ -1854,6 +1916,7 @@ network = list("mine") }, /obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/brown{ dir = 5 }, @@ -1886,6 +1949,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/brown{ dir = 8 }, @@ -1903,10 +1967,6 @@ "fk" = ( /turf/open/floor/plasteel/bar, /area/mine/living_quarters) -"fl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/bar, -/area/mine/living_quarters) "fm" = ( /obj/machinery/vending/cigarette, /obj/machinery/newscaster{ @@ -1939,12 +1999,18 @@ name = "Station Intercom (General)"; pixel_x = 28 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, /turf/open/floor/plasteel/purple/side{ dir = 4 }, /area/mine/living_quarters) "fr" = ( /obj/structure/table, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, /turf/open/floor/carpet, /area/mine/living_quarters) "fs" = ( @@ -1958,6 +2024,9 @@ pixel_x = 25; specialfunctions = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/carpet, /area/mine/living_quarters) "ft" = ( @@ -1966,13 +2035,15 @@ dir = 4; network = list("mine") }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/purple/corner{ dir = 1 }, /area/mine/living_quarters) "fu" = ( /obj/structure/chair, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/bar, /area/mine/living_quarters) "fv" = ( @@ -2008,6 +2079,9 @@ /obj/structure/chair{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, /turf/open/floor/plasteel/bar, /area/mine/living_quarters) "fD" = ( @@ -2016,9 +2090,6 @@ pixel_x = 7; pixel_y = 5 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, /obj/item/reagent_containers/food/drinks/beer{ pixel_x = -1; pixel_y = 9 @@ -2032,13 +2103,13 @@ /obj/structure/chair{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 }, /turf/open/floor/plasteel/bar, /area/mine/living_quarters) "fF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, /turf/open/floor/plasteel/bar, @@ -2103,6 +2174,9 @@ pixel_x = 25; specialfunctions = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/carpet, /area/mine/living_quarters) "fN" = ( @@ -2110,6 +2184,9 @@ /obj/machinery/light{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, /turf/open/floor/plasteel, /area/mine/living_quarters) "fO" = ( @@ -2133,6 +2210,9 @@ pixel_x = 25; specialfunctions = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/carpet, /area/mine/living_quarters) "fQ" = ( @@ -2153,6 +2233,12 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"fU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/purple/corner{ + dir = 8 + }, +/area/mine/living_quarters) "fV" = ( /turf/closed/indestructible/riveted/boss/see_through, /area/lavaland/surface/outdoors) @@ -2161,6 +2247,10 @@ /obj/structure/stone_tile/slab, /turf/open/indestructible/boss, /area/lavaland/surface/outdoors) +"gd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/mine/production) "gj" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 1 @@ -2215,6 +2305,12 @@ /obj/structure/stone_tile, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"gu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) "gy" = ( /obj/structure/stone_tile/cracked, /obj/structure/stone_tile{ @@ -2313,6 +2409,12 @@ }, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"hz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) "hH" = ( /obj/structure/stone_tile/block{ dir = 1 @@ -2413,6 +2515,14 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"iZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 1 + }, +/area/mine/living_quarters) "ja" = ( /obj/structure/stone_tile{ dir = 8 @@ -2425,6 +2535,14 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"jd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/mine/production) "jg" = ( /obj/structure/stone_tile, /obj/structure/stone_tile/cracked{ @@ -2580,6 +2698,12 @@ /obj/structure/stone_tile, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"kv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown, +/area/mine/living_quarters) "ky" = ( /obj/structure/stone_tile/cracked{ dir = 4 @@ -2691,6 +2815,13 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"lo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) "lp" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 @@ -3141,106 +3272,452 @@ /obj/structure/stone_tile{ dir = 4 }, -/obj/structure/stone_tile{ +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mW" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mX" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mY" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"mZ" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"nb" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"nc" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"ne" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"nf" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"ng" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors) +"on" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ot" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"pa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"qY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"rE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"rP" = ( +/obj/machinery/atmospherics/pipe/layer_manifold{ + icon_state = "manifoldlayer"; + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"rV" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ss" = ( +/obj/machinery/button/door{ + id = "miningbathroom"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_y = -25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"sL" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"tI" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"vb" = ( +/obj/machinery/door/window/southleft, +/obj/machinery/shower{ + pixel_y = 22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"vq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"vZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"xA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/mine/production) +"xT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/purple/corner, +/area/mine/living_quarters) +"yR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"zu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"zV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/mine/production) +"AB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"BD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/mine/living_quarters) +"BT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Cl" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/purple/corner{ + dir = 8 + }, +/area/mine/living_quarters) +"Eg" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Ej" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/corner, +/area/mine/living_quarters) +"El" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/mine/living_quarters) +"Es" = ( +/obj/machinery/door/window/southright, +/obj/machinery/shower{ + pixel_y = 22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"EG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Fe" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"Ho" = ( +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/mine/living_quarters) +"HO" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"IG" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 8 + }, +/area/mine/living_quarters) +"IK" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"Jh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/mine/living_quarters) +"Jl" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"JJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/purple/corner{ dir = 8 }, -/turf/open/indestructible/boss, +/area/mine/production) +"JZ" = ( +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"mW" = ( -/obj/structure/stone_tile/block/cracked{ +"Kb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/stone_tile/block{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/indestructible/boss, -/area/lavaland/surface/outdoors) -"mX" = ( -/obj/structure/stone_tile/cracked, -/obj/structure/stone_tile{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 1 }, -/obj/structure/stone_tile{ - dir = 8 - }, -/obj/structure/stone_tile/cracked{ +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"LO" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/indestructible/boss, -/area/lavaland/surface/outdoors) -"mY" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 8 - }, -/obj/structure/stone_tile{ - dir = 1 +/turf/open/floor/plating, +/area/mine/eva) +"Nj" = ( +/obj/machinery/door/airlock{ + name = "Restroom" }, -/obj/structure/stone_tile, -/turf/open/indestructible/boss, -/area/lavaland/surface/outdoors) -"mZ" = ( -/obj/structure/stone_tile{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/structure/stone_tile{ +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"OT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/structure/stone_tile, -/obj/structure/stone_tile{ +/turf/open/floor/plasteel/purple/corner{ dir = 8 }, -/turf/open/indestructible/boss, -/area/lavaland/surface/outdoors) -"nb" = ( -/obj/structure/stone_tile/cracked{ - dir = 8 +/area/mine/production) +"Pt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, -/obj/structure/stone_tile{ - dir = 1 +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"PQ" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/mine/living_quarters) +"RO" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4; + name = "scrubber outlet" }, -/obj/structure/stone_tile{ +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/mine/living_quarters) +"Tn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/stone_tile, -/turf/open/indestructible/boss, -/area/lavaland/surface/outdoors) -"nc" = ( -/obj/structure/stone_tile/cracked{ +/obj/machinery/light/small, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"Tp" = ( +/obj/machinery/atmospherics/pipe/layer_manifold{ dir = 4 }, -/obj/structure/stone_tile{ - dir = 1 - }, -/obj/structure/stone_tile, -/obj/structure/stone_tile{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/indestructible/boss, -/area/lavaland/surface/outdoors) -"ne" = ( -/obj/structure/stone_tile/block{ +/turf/open/floor/plasteel, +/area/mine/production) +"TN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 1 }, -/obj/structure/stone_tile, -/obj/structure/stone_tile{ - dir = 8 - }, -/turf/open/indestructible/boss, -/area/lavaland/surface/outdoors) -"nf" = ( -/obj/structure/stone_tile/slab/cracked, -/turf/open/indestructible/boss, -/area/lavaland/surface/outdoors) -"ng" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile{ - dir = 8 +/turf/closed/wall/r_wall, +/area/mine/maintenance) +"Uh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/stone_tile/block/cracked{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/indestructible/boss, -/area/lavaland/surface/outdoors) +/turf/open/floor/plasteel, +/area/mine/production) "Uq" = ( /obj/docking_port/stationary{ area_type = /area/lavaland/surface/outdoors; @@ -3253,6 +3730,34 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"UQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/mine/production) +"VD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/mine/production) +"VP" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/purple/corner{ + dir = 1 + }, +/area/space) "Wp" = ( /obj/docking_port/stationary{ area_type = /area/lavaland/surface/outdoors; @@ -3344,6 +3849,30 @@ /obj/effect/baseturf_helper/lava_land/surface, /turf/closed/wall, /area/mine/living_quarters) +"WO" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"YA" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/mine/living_quarters) +"Zf" = ( +/obj/machinery/door/airlock{ + id_tag = "miningbathroom"; + name = "Restroom" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) (1,1,1) = {" aa @@ -9999,7 +10528,7 @@ aj ab ab ab -ab +RO ab ab aj @@ -10255,9 +10784,9 @@ aj ab ad ai -ab -ab -ab +JZ +YA +JZ ai ab ab @@ -10513,7 +11042,7 @@ cQ cQ cQ cR -cR +Jl cR cM cR @@ -10770,7 +11299,7 @@ dg dg cQ dZ -dZ +yR dZ cM fa @@ -11025,10 +11554,10 @@ aj cQ dh dx -cQ -ea +TN +Jh ep -ek +xT cM fb dZ @@ -11798,9 +12327,9 @@ dk dA WJ ed -er +Kb eM -cM +El fd fq fB @@ -12056,7 +12585,7 @@ cQ cQ ee er -dZ +vZ cM cM cM @@ -12312,8 +12841,8 @@ dl dB cM dZ -er -dZ +EG +on cM fe fr @@ -12567,10 +13096,10 @@ ab cR dm dC -dQ -ea -er -dZ +WO +Jh +Kb +Eg cM ff fs @@ -12822,21 +13351,21 @@ aj aj ab cR -dm +Ho dD dR ef es -dZ +vZ WK fg -cM +BD cM fH -cM +BD cM fO -cM +BD cM aj aj @@ -13084,16 +13613,16 @@ dE dQ ec er -dZ -eL +sL +fU fh ft -eL +fU fh -ec -eL +VP +IG fh -ec +iZ cR aj aj @@ -13342,14 +13871,14 @@ cM eg et eN -eN +ot fi -eN -eN +ot +ot fi fN -eN -fi +lo +HO fp cR ab @@ -13597,17 +14126,17 @@ do dF cM eh -er -dZ +EG +on cM cM dQ dQ cM cM +BD +Nj cM -cR -cR cM ai ab @@ -13848,23 +14377,23 @@ aD aD aj aj -cN +cM cT cV dG cM ea er -eM +rV cM fj fk -fk +Pt fI cM -ab -ab -ab +vb +hz +cM ai ad ai @@ -14112,16 +14641,16 @@ dH dS ei eu -ek -dQ -fk -fk +Ej +PQ +pa +pa fC fk cM -ab -aj -ab +Es +Tn +cM ab ai ai @@ -14369,16 +14898,16 @@ dI cM ej ev -eK +kv eR -fl +fk fu fD fJ cM -ai -aj -aj +BD +Zf +cM aj aj aj @@ -14624,18 +15153,18 @@ cW dr dr cM -dZ -er -eL -dQ -fk -fk +vq +Kb +Cl +WO +gu +gu fE fK cM -ad -aj -aj +Fe +ss +cM aj aj aj @@ -14883,16 +15412,16 @@ cM cM dZ er -dZ +vZ cM fm fk fF fk cM -ai -aj -aj +IK +tI +cM aj aj aj @@ -15139,17 +15668,17 @@ ab ab cR dZ -er -dZ +rP +vZ cM fn fv fG fL cM -ai -ai -aj +cM +cM +cM aj aj aj @@ -16167,7 +16696,7 @@ aj aj aj cR -er +BT cR ab aj @@ -16424,7 +16953,7 @@ aj aj aj cR -er +BT cR ab aj @@ -16681,7 +17210,7 @@ ab aj aj cR -er +BT cR ab aj @@ -17709,7 +18238,7 @@ aj aj ab br -bR +UQ br ab ab @@ -18222,7 +18751,7 @@ bq bq bq br -cH +JJ eB cD br @@ -18473,14 +19002,14 @@ bC bP cl bP -cH +OT cO cX ck dJ dT -bP -ez +rE +Tp bP eS bq @@ -18730,13 +19259,13 @@ bD bQ cm cE -cE +Uh cE cY cE +Uh cE -cE -cE +Uh eC eP eT @@ -18985,15 +19514,15 @@ ab br bE bR -cn -cF +zV +VD cI cP -cn -bP -bP -bP -bP +zV +qY +zu +qY +gd eD bP eU @@ -19240,7 +19769,7 @@ ab bf bf bf -bF +LO bS bF bf @@ -19250,7 +19779,7 @@ cZ ds dK dU -cF +jd eE cn eV @@ -19764,7 +20293,7 @@ da du dL cH -ck +xA eG cD bP @@ -20021,7 +20550,7 @@ db bP bP bP -bP +rE eH cF eW @@ -20278,7 +20807,7 @@ dc bP dM dW -dW +AB eI bq eX diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 493f8bf54f..4d94b9929c 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -3446,7 +3446,10 @@ /area/bridge) "agX" = ( /obj/structure/table/reinforced, -/obj/item/aiModule/reset, +/obj/item/aiModule/reset{ + pixel_x = 3; + pixel_y = 3 + }, /obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 @@ -3454,6 +3457,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/item/aiModule/supplied/freeform, /turf/open/floor/plasteel/vault/side{ dir = 4 }, @@ -3936,11 +3940,10 @@ }, /area/bridge) "ahP" = ( -/obj/structure/table/reinforced, -/obj/item/aiModule/supplied/freeform, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/ore_silo, /turf/open/floor/plasteel/vault/side{ dir = 4 }, @@ -7393,7 +7396,14 @@ }, /area/quartermaster/miningdock) "aol" = ( -/obj/structure/ore_box, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/pickaxe, +/obj/item/storage/toolbox/emergency, +/obj/item/shovel, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/quartermaster/miningdock) @@ -8557,19 +8567,12 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "aqq" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/emergency{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/pickaxe, -/obj/item/storage/toolbox/emergency, -/obj/item/shovel, /obj/machinery/camera{ c_tag = "Mining Dock"; dir = 4 }, /obj/effect/turf_decal/bot, +/obj/structure/closet/wardrobe/miner, /turf/open/floor/plasteel, /area/quartermaster/miningdock) "aqr" = ( @@ -13300,7 +13303,7 @@ name = "Atmospherics Lockdown Control"; pixel_x = 24; pixel_y = -24; - req_access_txt = "25" + req_access_txt = "24" }, /turf/open/floor/plasteel/caution, /area/engine/atmos) diff --git a/_maps/map_files/OmegaStation/job_changes.dm b/_maps/map_files/OmegaStation/job_changes.dm index bef766da7b..035deb9032 100644 --- a/_maps/map_files/OmegaStation/job_changes.dm +++ b/_maps/map_files/OmegaStation/job_changes.dm @@ -117,10 +117,6 @@ access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_QM, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_QM, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM) -/datum/outfit/job/mining/New() - ..() - box = /obj/item/storage/box/engineer/radio - //Service /datum/job/bartender/New() diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 3a6e1a953b..9a47dd9e5c 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -6465,6 +6465,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, +/obj/machinery/ore_silo, /turf/open/floor/plasteel/vault{ dir = 4 }, @@ -9107,7 +9108,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/obj/structure/stacklifter, +/obj/structure/weightmachine/stacklifter, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "ayw" = ( @@ -9610,7 +9611,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, -/obj/structure/weightlifter, +/obj/structure/weightmachine/weightlifter, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "azE" = ( @@ -13625,8 +13626,8 @@ pixel_x = 32; pixel_y = -40 }, -/obj/structure/sign/directions/evac{ - dir = 1; +/obj/structure/sign/directions/command{ + dir = 4; pixel_x = 32; pixel_y = -32 }, @@ -14834,11 +14835,7 @@ /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/cafeteria/lunchroom) "aNb" = ( -/obj/machinery/vending/sustenance{ - contraband = list(/obj/item/kitchen/knife = 6, /obj/item/reagent_containers/food/drinks/coffee = 12); - desc = "A vending machine which vends food."; - product_ads = "Sufficiently healthy." - }, +/obj/machinery/vending/sustenance, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/cafeteria/lunchroom) "aNc" = ( @@ -15192,6 +15189,14 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, +/obj/machinery/door/window/westleft, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/disposal) "aNY" = ( @@ -15609,10 +15614,6 @@ /turf/open/floor/plating, /area/maintenance/department/cargo) "aPg" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, /obj/structure/disposaloutlet{ dir = 4 }, @@ -15626,12 +15627,9 @@ /area/maintenance/disposal) "aPh" = ( /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, /turf/open/floor/plating, /area/maintenance/disposal) "aPi" = ( @@ -15679,14 +15677,6 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"aPw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/sign/directions/evac{ - dir = 1; - pixel_x = 32 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) "aPx" = ( /obj/machinery/light/small{ dir = 1 @@ -15959,7 +15949,7 @@ dir = 8 }, /obj/machinery/conveyor{ - dir = 2; + dir = 1; id = "garbage" }, /turf/open/floor/plating, @@ -17004,8 +16994,7 @@ }, /area/maintenance/department/crew_quarters/bar) "aSN" = ( -/obj/item/assembly/mousetrap, -/obj/item/storage/box/mousetraps, +/obj/structure/reagent_dispensers/beerkeg, /turf/open/floor/wood{ icon_state = "wood-broken6" }, @@ -17023,6 +17012,8 @@ "aSQ" = ( /obj/effect/landmark/xeno_spawn, /obj/item/storage/box/beanbag, +/obj/item/assembly/mousetrap, +/obj/item/storage/box/mousetraps, /turf/open/floor/wood, /area/crew_quarters/bar) "aSR" = ( @@ -17557,10 +17548,6 @@ dir = 8 }, /area/maintenance/department/crew_quarters/bar) -"aUc" = ( -/obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor/wood, -/area/crew_quarters/bar) "aUd" = ( /obj/structure/cable{ icon_state = "1-2" @@ -17593,6 +17580,20 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, +/obj/structure/sign/directions/supply{ + dir = 4; + pixel_x = -32; + pixel_y = -8 + }, +/obj/structure/sign/directions/command{ + dir = 1; + pixel_x = -32; + pixel_y = 8 + }, +/obj/structure/sign/directions/security{ + dir = 1; + pixel_x = -32 + }, /turf/open/floor/plasteel/brown/corner{ dir = 1 }, @@ -17774,21 +17775,6 @@ dir = 1 }, /area/hallway/secondary/exit/departure_lounge) -"aUH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/sign/directions/evac{ - dir = 1; - pixel_y = 32 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/escape{ - dir = 1 - }, -/area/hallway/secondary/exit/departure_lounge) "aUI" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -18130,6 +18116,17 @@ /obj/machinery/light{ dir = 8 }, +/obj/structure/sign/directions/engineering{ + pixel_x = -32; + pixel_y = -8 + }, +/obj/structure/sign/directions/science{ + pixel_x = -32 + }, +/obj/structure/sign/directions/medical{ + pixel_x = -32; + pixel_y = 8 + }, /turf/open/floor/plasteel/brown/corner{ dir = 1 }, @@ -18328,6 +18325,20 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, +/obj/structure/sign/directions/evac{ + dir = 1; + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/directions/security{ + dir = 1; + pixel_x = 32; + pixel_y = 8 + }, +/obj/structure/sign/directions/command{ + dir = 1; + pixel_x = 32 + }, /turf/open/floor/plasteel/neutral/corner, /area/hallway/primary/central) "aVS" = ( @@ -21859,10 +21870,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/sign/directions/evac{ - dir = 8; - pixel_y = -32 - }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bfg" = ( @@ -22195,17 +22202,18 @@ /area/crew_quarters/lounge) "bge" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/sign/directions/security{ - dir = 1; +/obj/structure/sign/directions/engineering{ + dir = 4; pixel_x = 32; - pixel_y = 40 + pixel_y = 32 }, /obj/structure/sign/directions/science{ dir = 4; pixel_x = 32; - pixel_y = 32 + pixel_y = 40 }, -/obj/structure/sign/directions/engineering{ +/obj/structure/sign/directions/medical{ + dir = 4; pixel_x = 32; pixel_y = 24 }, @@ -22384,11 +22392,6 @@ /area/hallway/primary/central) "bgA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/sign/directions/evac{ - dir = 1; - pixel_x = -32; - pixel_y = 40 - }, /obj/structure/sign/directions/medical{ dir = 8; pixel_x = -32; @@ -22398,6 +22401,11 @@ pixel_x = -32; pixel_y = 24 }, +/obj/structure/sign/directions/supply{ + dir = 1; + pixel_x = -32; + pixel_y = 40 + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "bgB" = ( @@ -22603,12 +22611,16 @@ }, /obj/structure/sign/directions/engineering{ pixel_x = 32; - pixel_y = 28 + pixel_y = 24 }, -/obj/structure/sign/directions/evac{ - dir = 1; +/obj/structure/sign/directions/science{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/structure/sign/directions/supply{ + dir = 4; pixel_x = 32; - pixel_y = 38 + pixel_y = 40 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -24892,7 +24904,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bnO" = ( -/obj/machinery/rnd/production/circuit_imprinter, /obj/machinery/light{ dir = 8 }, @@ -24900,6 +24911,7 @@ dir = 4; pixel_x = -28 }, +/obj/machinery/rnd/production/circuit_imprinter/department/science, /turf/open/floor/plasteel/vault{ dir = 8 }, @@ -25315,12 +25327,12 @@ id = "robotics"; name = "Shutters Control Button"; pixel_x = -26; - pixel_y = 4; + pixel_y = 8; req_access_txt = "29" }, /obj/machinery/light_switch{ pixel_x = -25; - pixel_y = -6 + pixel_y = -8 }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) @@ -26331,7 +26343,7 @@ name = "Shutters Control"; pixel_x = 26; pixel_y = 4; - req_access_txt = "5; 33" + req_one_access_txt = "5;33" }, /turf/open/floor/plasteel/whiteyellow/side{ dir = 5 @@ -26929,9 +26941,9 @@ /obj/machinery/chem_dispenser{ layer = 2.7 }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 29 +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 }, /turf/open/floor/plasteel/whiteyellow/side{ dir = 4 @@ -31710,7 +31722,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, -/obj/machinery/rnd/production/protolathe/department/medical, +/obj/machinery/rnd/production/techfab/department/medical, /turf/open/floor/plasteel/whiteblue/side{ dir = 1 }, @@ -31877,9 +31889,8 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/vending/wallmed{ - pixel_y = 28; - products = list(/obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/pill/patch/styptic = 1, /obj/item/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/reagent_containers/medspray/sterilizine = 1) +/obj/machinery/vending/wallmed/pubby{ + pixel_y = 28 }, /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/blobstart, @@ -32174,6 +32185,14 @@ dir = 5 }, /area/science/mixing) +"bFq" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/department/engine) "bFr" = ( /turf/open/floor/plasteel/purple/side{ dir = 1 @@ -33408,9 +33427,8 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/vending/wallmed{ - pixel_y = 28; - products = list(/obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/pill/patch/styptic = 1, /obj/item/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/reagent_containers/medspray/sterilizine = 1) +/obj/machinery/vending/wallmed/pubby{ + pixel_y = 28 }, /turf/open/floor/plasteel/whiteblue/side{ dir = 1 @@ -34223,9 +34241,8 @@ /turf/open/floor/plasteel/freezer, /area/medical/medbay/central) "bKw" = ( -/obj/machinery/vending/wallmed{ - pixel_y = 28; - products = list(/obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/pill/patch/styptic = 1, /obj/item/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/reagent_containers/medspray/sterilizine = 1) +/obj/machinery/vending/wallmed/pubby{ + pixel_y = 28 }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -34937,7 +34954,7 @@ /turf/open/floor/engine/vacuum, /area/science/mixing) "bMn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, /turf/open/floor/engine/vacuum, @@ -37213,12 +37230,13 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bSg" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 - }, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/components/trinary/mixer{ + name = "plasma mixer"; + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bSh" = ( @@ -38283,8 +38301,9 @@ /area/crew_quarters/heads/chief) "bUL" = ( /obj/machinery/computer/station_alert, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = 32 +/obj/machinery/firealarm{ + dir = 1; + pixel_y = 29 }, /turf/open/floor/plasteel/yellow/side{ dir = 1 @@ -38292,6 +38311,9 @@ /area/crew_quarters/heads/chief) "bUM" = ( /obj/machinery/computer/card/minor/ce, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, /turf/open/floor/plasteel/yellow/side{ dir = 5 }, @@ -39297,8 +39319,7 @@ desc = "A remote control-switch for secure storage."; id = "ce_privacy"; name = "Privacy Shutters"; - pixel_x = 24; - req_access_txt = "11" + pixel_x = 24 }, /turf/open/floor/plasteel/yellow/side{ dir = 6 @@ -40067,6 +40088,7 @@ }, /obj/machinery/airalarm{ dir = 2; + locked = 0; pixel_y = 22 }, /obj/structure/cable{ @@ -40309,7 +40331,9 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, /turf/open/floor/plasteel/darkyellow/side{ icon_state = "darkyellow"; dir = 8 @@ -40367,7 +40391,7 @@ /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ dir = 8 }, -/turf/open/floor/engine, +/turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "bZV" = ( /obj/structure/sign/warning/fire, @@ -40589,9 +40613,6 @@ network = list("turbine"); pixel_x = -29 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, /turf/open/floor/plasteel/darkyellow/side{ icon_state = "darkyellow"; dir = 8 @@ -40655,7 +40676,7 @@ pixel_x = 32; pixel_y = -32 }, -/turf/open/floor/engine, +/turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "caP" = ( /obj/structure/cable/yellow{ @@ -40674,7 +40695,7 @@ dir = 2; network = list("turbine") }, -/turf/open/floor/engine, +/turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "caQ" = ( /obj/structure/cable/yellow{ @@ -40684,7 +40705,7 @@ dir = 4; luminosity = 2 }, -/turf/open/floor/engine, +/turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "caR" = ( /obj/machinery/door/poddoor/incinerator_atmos_main, @@ -40895,11 +40916,10 @@ }, /area/maintenance/disposal/incinerator) "cbB" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Incinerator to Output" - }, /obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/maintenance/disposal/incinerator) "cbC" = ( @@ -40907,19 +40927,13 @@ pixel_x = 26; pixel_y = -6 }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 1 - }, -/turf/open/floor/plasteel/darkyellow/side{ +/obj/machinery/atmospherics/components/trinary/filter/flipped{ + icon_state = "filter_off_f"; dir = 4 }, -/area/maintenance/disposal/incinerator) -"cbD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ +/turf/open/floor/plasteel/darkyellow/side{ dir = 4 }, -/turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "cbE" = ( /obj/machinery/atmospherics/components/binary/pump{ @@ -40930,10 +40944,10 @@ /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "cbF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, -/turf/open/floor/engine, +/turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cbG" = ( /obj/structure/window/reinforced/fulltile, @@ -41161,10 +41175,7 @@ /turf/open/floor/plasteel/dark, /area/maintenance/disposal/incinerator) "ccr" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 2; - name = "Incinerator Output Pump" - }, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel/darkyellow/side{ dir = 4 }, @@ -41330,6 +41341,7 @@ /area/maintenance/disposal/incinerator) "cdi" = ( /obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/obj/machinery/meter, /turf/open/floor/plasteel/darkyellow/side{ icon_state = "darkyellow"; dir = 6 @@ -41861,7 +41873,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/engine/engineering) "ceU" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -44169,7 +44181,7 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/main) "cnT" = ( -/obj/structure/weightlifter, +/obj/structure/weightmachine/weightlifter, /turf/open/floor/plasteel/showroomfloor, /area/security/main) "cnV" = ( @@ -45842,11 +45854,11 @@ /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "cvf" = ( +/obj/machinery/recycler, /obj/machinery/conveyor{ - dir = 8; + dir = 4; id = "garbage" }, -/obj/machinery/recycler, /turf/open/floor/plating, /area/maintenance/disposal) "cvg" = ( @@ -46327,13 +46339,6 @@ /obj/item/flashlight/lantern, /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) -"cwP" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 28 - }, -/turf/closed/wall, -/area/medical/chemistry) "cwR" = ( /obj/structure/window/reinforced{ dir = 8; @@ -47165,7 +47170,7 @@ /turf/open/floor/plasteel/dark, /area/security/main) "cCT" = ( -/obj/machinery/rnd/production/protolathe/department/cargo, +/obj/machinery/rnd/production/techfab/department/cargo, /turf/open/floor/plasteel, /area/quartermaster/storage) "cCU" = ( @@ -47509,7 +47514,7 @@ /area/hallway/secondary/exit/departure_lounge) "dqY" = ( /obj/machinery/conveyor{ - dir = 4; + dir = 8; id = "garbage" }, /turf/open/floor/plating, @@ -47853,7 +47858,7 @@ dir = 1 }, /turf/open/floor/plasteel/neutral, -/area/maintenance/department/security/brig) +/area/hallway/secondary/exit/departure_lounge) "eCw" = ( /obj/structure/cable{ icon_state = "1-2" @@ -48464,6 +48469,21 @@ }, /turf/open/floor/plasteel/yellow/side, /area/engine/engineering) +"gpu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sign/directions/medical{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/directions/science{ + pixel_x = 32 + }, +/obj/structure/sign/directions/engineering{ + pixel_x = 32; + pixel_y = 8 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) "gpC" = ( /obj/structure/chair, /obj/machinery/light{ @@ -49164,8 +49184,7 @@ /area/crew_quarters/dorms) "izF" = ( /turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01" + luminosity = 2 }, /area/maintenance/department/science) "iAx" = ( @@ -49612,6 +49631,20 @@ }, /turf/open/floor/plating, /area/maintenance/department/science) +"jRZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/escape{ + dir = 1 + }, +/area/hallway/secondary/exit/departure_lounge) "jSA" = ( /obj/structure/sign/departments/science, /turf/closed/wall, @@ -50115,6 +50148,15 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel/dark, /area/library/lounge) +"lsI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sign/directions/engineering{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/hallway/primary/aft) "lzJ" = ( /obj/structure/closet/crate/bin, /turf/open/floor/carpet, @@ -50162,7 +50204,7 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "lGp" = ( -/obj/structure/weightlifter, +/obj/structure/weightmachine/weightlifter, /turf/open/floor/plasteel/dark, /area/security/prison) "lGv" = ( @@ -50494,6 +50536,11 @@ dir = 1; pixel_x = 32 }, +/obj/structure/sign/directions/security{ + dir = 8; + pixel_x = 32; + pixel_y = 8 + }, /turf/open/floor/plasteel/vault, /area/bridge) "mzl" = ( @@ -50577,6 +50624,14 @@ }, /turf/open/floor/plating, /area/science/xenobiology) +"mPh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/sign/directions/evac{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "mQm" = ( /obj/structure/chair/office/light{ dir = 1 @@ -50635,15 +50690,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine) -"nfi" = ( -/obj/structure/sign/directions/evac{ - dir = 1; - pixel_y = 32 - }, -/turf/open/floor/plasteel/escape{ - dir = 1 - }, -/area/hallway/secondary/exit/departure_lounge) "nfz" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -50786,8 +50832,7 @@ dir = 6 }, /turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01" + luminosity = 2 }, /area/maintenance/department/science) "nAs" = ( @@ -50926,7 +50971,7 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/plating, +/turf/open/floor/plating/airless, /area/space/nearstation) "nOY" = ( /obj/effect/turf_decal/stripes/line{ @@ -50965,6 +51010,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/lawoffice) +"nVz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/sign/directions/evac{ + dir = 8; + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "nVU" = ( /obj/item/twohanded/spear, /turf/open/floor/plating, @@ -51008,8 +51061,7 @@ /obj/item/paper_bin, /obj/item/pen, /turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01" + luminosity = 2 }, /area/maintenance/department/science) "oep" = ( @@ -51677,6 +51729,10 @@ /area/medical/virology) "pSc" = ( /obj/machinery/chem_heater, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, /turf/open/floor/plasteel/whiteyellow/side{ dir = 5 }, @@ -51898,9 +51954,10 @@ "qEN" = ( /obj/machinery/rnd/production/techfab/department/service, /obj/structure/window/reinforced{ - dir = 8 + dir = 8; + pixel_x = -4 }, -/turf/closed/wall, +/turf/open/floor/plasteel/dark, /area/crew_quarters/bar) "qFu" = ( /obj/machinery/power/port_gen/pacman, @@ -52094,7 +52151,7 @@ /area/medical/sleeper) "rax" = ( /obj/machinery/conveyor{ - dir = 2; + dir = 1; id = "garbage" }, /turf/open/floor/plating, @@ -52149,6 +52206,13 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) +"rlV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/sign/directions/evac{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "rnr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 @@ -52171,8 +52235,7 @@ dir = 4 }, /turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01" + luminosity = 2 }, /area/maintenance/department/science) "rrb" = ( @@ -52371,6 +52434,24 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, /area/science/mixing) +"rQa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/sign/directions/evac{ + dir = 8; + pixel_x = -32; + pixel_y = 8 + }, +/obj/structure/sign/directions/security{ + dir = 1; + pixel_x = -32 + }, +/obj/structure/sign/directions/command{ + dir = 1; + pixel_x = -32; + pixel_y = -8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "rSH" = ( /obj/item/trash/can, /turf/open/floor/wood, @@ -52919,9 +53000,9 @@ "tHk" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/sign/directions/evac{ - pixel_x = 32; - pixel_y = 3 +/obj/structure/sign/directions/security{ + dir = 1; + pixel_x = 32 }, /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -52952,6 +53033,28 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/department/engine) +"tWc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/directions/science{ + dir = 4; + pixel_x = 32; + pixel_y = 40 + }, +/obj/structure/sign/directions/engineering{ + dir = 4; + pixel_x = 32; + pixel_y = 32 + }, +/obj/structure/sign/directions/supply{ + dir = 4; + pixel_x = 32; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "tXn" = ( /obj/structure/sink{ dir = 4; @@ -53091,8 +53194,7 @@ dir = 9 }, /turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01" + luminosity = 2 }, /area/maintenance/department/science) "uoq" = ( @@ -53407,8 +53509,7 @@ "vpz" = ( /obj/structure/girder, /turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01" + luminosity = 2 }, /area/maintenance/department/science) "vsk" = ( @@ -54174,8 +54275,7 @@ "xsO" = ( /obj/item/ectoplasm, /turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01" + luminosity = 2 }, /area/maintenance/department/science) "xuv" = ( @@ -75616,7 +75716,7 @@ aIH jTh aSu aiu -nfi +aML aJE aWF aXF @@ -76130,7 +76230,7 @@ oEA scp oEA oEA -dpa +jRZ dTV aWF kAa @@ -77415,7 +77515,7 @@ aQx aRG qWM oEA -aUH +mal dTV aWF aXI @@ -78173,11 +78273,11 @@ aDu aEs aFr aGb -aGU +mPh aHE aAL aAL -aAL +rlV aAL aMR aAL @@ -78193,11 +78293,11 @@ aGU aAL aZL aAL -aAL +rQa aAL aAL bfg -aAL +nVz aAL bhJ bif @@ -78695,14 +78795,14 @@ aKI aLv aMT aKI -aPw +aKI aQC aKI aKI aTP aUM aVR -aKI +gpu aXL aYL aZN @@ -82567,7 +82667,7 @@ bdo ben bfo bfo -aJZ +tWc aAL bin bja @@ -83659,7 +83759,7 @@ fFv fFv fFv fFv -bTE +bXk aaa aaa aaa @@ -83916,7 +84016,7 @@ fFv qbp fFv fFv -bTE +bXk aaa aaa aaa @@ -84173,7 +84273,7 @@ cBR uVW lRY ckr -bTE +bXk aaa aaa aaa @@ -84430,7 +84530,7 @@ cjs cfV cfV cfV -bTE +bXk abI aaa aaa @@ -84610,7 +84710,7 @@ aPE aQS aRQ aSN -aUc +aPE aPE aWd aXb @@ -84687,7 +84787,7 @@ uaP ciG cfV cfV -bTE +bXk abI abI aaa @@ -84944,7 +85044,7 @@ uoq uRk ciG cfV -bTE +bXk abI aaa aaa @@ -85201,7 +85301,7 @@ fyO uoq hQC mpd -bTE +bXk abI aaa aaa @@ -85458,7 +85558,7 @@ fyO fyO hQC mpd -bTE +bXk abI aaa aaa @@ -85715,7 +85815,7 @@ mpd mpd hQC sYp -bTE +bXk abI aaa aaa @@ -85972,7 +86072,7 @@ fyO fyO hQC mpd -bTE +bXk aaa aaa aaa @@ -86229,7 +86329,7 @@ fyO uoq hQC mpd -bTE +bXk aaa aaa aaa @@ -86433,7 +86533,7 @@ bmA bjd bpY bpY -cwP +bpY pSc gGA bwW @@ -86486,7 +86586,7 @@ fyO dZj ciI cfV -bTE +bXk aaa aaa aaa @@ -86743,7 +86843,7 @@ cZt ciI cfV cfV -bTE +bXk abI aaa aaa @@ -86957,7 +87057,7 @@ tTl dgg phJ phJ -xje +bFq bAk bIt bJB @@ -87000,7 +87100,7 @@ cjt cfV cfV cfV -bTE +bXk abI abI abI @@ -87257,7 +87357,7 @@ woh liR phg cks -bTE +bXk abI aaa abI @@ -87514,7 +87614,7 @@ fFv kWQ fFv fFv -bTE +bXk abI aaa aaa @@ -87771,7 +87871,7 @@ fFv fFv fFv fFv -bTE +bXk abI abI abI @@ -90028,7 +90128,7 @@ bks blD bko bko -bko +lsI bqf bko bsV @@ -93406,7 +93506,7 @@ jLW bZi bZR caL -cbD +bZT bYw cdj bYw diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index f8a9bf4f59..bcec824aee 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -1242,15 +1242,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/computer/arcade/orion_trail{ - desc = "A test for cadets"; - events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); - icon = 'icons/obj/machines/particle_accelerator.dmi'; - icon_state = "control_boxp"; - name = "Kobayashi Maru control computer"; - prizes = list(/obj/item/paper/fluff/holodeck/trek_diploma = 1); - settlers = list("Kirk","Worf","Gene") - }, +/obj/machinery/computer/arcade/orion_trail/kobayashi, /turf/open/floor/holofloor/plating, /area/holodeck/rec_center/kobayashi) "dP" = ( @@ -1268,30 +1260,14 @@ pixel_x = 16; pixel_y = -5 }, -/obj/machinery/computer/arcade/orion_trail{ - desc = "A test for cadets"; - events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); - icon = 'icons/obj/machines/particle_accelerator.dmi'; - icon_state = "control_boxp"; - name = "Kobayashi Maru control computer"; - prizes = list(/obj/item/paper/fluff/holodeck/trek_diploma = 1); - settlers = list("Kirk","Worf","Gene") - }, +/obj/machinery/computer/arcade/orion_trail/kobayashi, /turf/open/floor/holofloor/plating, /area/holodeck/rec_center/kobayashi) "dQ" = ( /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/computer/arcade/orion_trail{ - desc = "A test for cadets"; - events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); - icon = 'icons/obj/machines/particle_accelerator.dmi'; - icon_state = "control_boxp"; - name = "Kobayashi Maru control computer"; - prizes = list(/obj/item/paper/fluff/holodeck/trek_diploma = 1); - settlers = list("Kirk","Worf","Gene") - }, +/obj/machinery/computer/arcade/orion_trail/kobayashi, /turf/open/floor/holofloor/plating, /area/holodeck/rec_center/kobayashi) "dR" = ( @@ -5996,9 +5972,7 @@ }, /area/syndicate_mothership/control) "qM" = ( -/obj/machinery/vending/cigarette{ - products = list(/obj/item/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/storage/box/matches = 10, /obj/item/lighter/greyscale = 4, /obj/item/storage/fancy/rollingpapers = 5) - }, +/obj/machinery/vending/cigarette/syndicate, /turf/open/floor/plasteel/bar{ dir = 2 }, @@ -12622,13 +12596,6 @@ dir = 5 }, /area/tdome/tdomeadmin) -"JV" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/escape/backup) -"JW" = ( -/obj/machinery/status_display, -/turf/closed/wall/mineral/titanium, -/area/shuttle/escape/backup) "JX" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ @@ -12669,18 +12636,6 @@ dir = 8 }, /area/tdome/tdomeadmin) -"Kd" = ( -/turf/open/floor/mineral/titanium, -/area/shuttle/escape/backup) -"Ke" = ( -/turf/open/floor/mineral/plastitanium, -/area/shuttle/escape/backup) -"Kf" = ( -/obj/machinery/computer/emergency_shuttle{ - dir = 8 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape/backup) "Kg" = ( /turf/closed/indestructible/fakedoor{ name = "Thunderdome Admin" @@ -12709,29 +12664,17 @@ /turf/open/floor/plasteel, /area/tdome/tdomeadmin) "Kk" = ( -/obj/machinery/door/airlock/titanium, /obj/docking_port/stationary{ dir = 4; dwidth = 2; height = 8; id = "backup_away"; name = "Backup Shuttle Dock"; + roundstart_template = /datum/map_template/shuttle/emergency/backup; width = 8 }, -/obj/docking_port/mobile/emergency/backup, -/turf/open/floor/plating, -/area/shuttle/escape/backup) -"Kl" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape/backup) -"Km" = ( -/obj/structure/table/wood, -/obj/item/paper/fluff/stations/centcom/broken_evac, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape/backup) +/turf/open/space/basic, +/area/space) "Kn" = ( /obj/structure/bookcase/random, /turf/open/floor/plasteel/vault{ @@ -12863,11 +12806,6 @@ dir = 8 }, /area/tdome/tdomeadmin) -"Kz" = ( -/obj/structure/table/wood, -/obj/item/book/manual/random, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape/backup) "KA" = ( /obj/structure/flora/ausbushes/lavendergrass, /obj/structure/flora/ausbushes/sparsegrass, @@ -12894,18 +12832,6 @@ /obj/machinery/ai_status_display, /turf/closed/indestructible/riveted, /area/tdome/tdomeadmin) -"KE" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape/backup) -"KF" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/escape/backup) "KG" = ( /obj/structure/flora/ausbushes/lavendergrass, /obj/structure/flora/ausbushes/sparsegrass, @@ -13177,7 +13103,7 @@ dir = 4; dwidth = 2; height = 7; - id = "pod1_away"; + id = "pod_away"; name = "recovery ship"; width = 5 }, @@ -63652,14 +63578,14 @@ aa aa aa aa -JV -JV +aa +aa Kk -JV -JV -JV -JV -JV +aa +aa +aa +aa +aa aa aa aa @@ -63909,14 +63835,14 @@ aa aa aa aa -JW -Kd -Kd -Kd -KE -Kd -Kd -JW +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -64166,14 +64092,14 @@ aa aa aa aa -JV -Kd -Kd -Kd -Kd -Kd -Kd -JV +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -64423,14 +64349,14 @@ aa aa aa aa -JV -Ke -Ke -Ke -Ke -Kd -Ke -JV +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -64680,14 +64606,14 @@ aa aa aa aa -JV -Ke -Ke -Ke -Ke -Kd -Ke -JV +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -64937,14 +64863,14 @@ aa aa aa aa -JV -Kd -Kl -Kd -Kd -Kd -Kd -JV +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -65194,14 +65120,14 @@ aa aa aa aa -JW -Kf -Km -Kz -KF -Kd -Kd -JW +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -65451,14 +65377,14 @@ aa aa aa aa -JV -JV -JV -JV -JV -JV -JV -JV +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa diff --git a/_maps/shuttles/assault_pod_default.dmm b/_maps/shuttles/assault_pod_default.dmm index 4574318e47..394f5d90cd 100644 --- a/_maps/shuttles/assault_pod_default.dmm +++ b/_maps/shuttles/assault_pod_default.dmm @@ -23,8 +23,7 @@ dwidth = 3; name = "steel rain"; port_direction = 4; - preferred_direction = 4; - timid = 1 + preferred_direction = 4 }, /turf/open/floor/plating, /area/shuttle/assault_pod) diff --git a/_maps/shuttles/aux_base_default.dmm b/_maps/shuttles/aux_base_default.dmm index 365c34cf50..684a78e980 100644 --- a/_maps/shuttles/aux_base_default.dmm +++ b/_maps/shuttles/aux_base_default.dmm @@ -56,8 +56,7 @@ dir = 2; dwidth = 4; height = 9; - width = 9; - timid = 1 + width = 9 }, /obj/machinery/bluespace_beacon, /obj/machinery/computer/auxillary_base, diff --git a/_maps/shuttles/aux_base_small.dmm b/_maps/shuttles/aux_base_small.dmm index a7ddb70a9b..fc507ea3d8 100644 --- a/_maps/shuttles/aux_base_small.dmm +++ b/_maps/shuttles/aux_base_small.dmm @@ -35,7 +35,8 @@ /area/shuttle/auxillary_base) "h" = ( /obj/machinery/camera{ - dir = 1 + dir = 1; + network = list("auxbase") }, /obj/structure/mining_shuttle_beacon, /turf/open/floor/plating, @@ -52,8 +53,7 @@ dir = 2; dwidth = 4; height = 9; - width = 9; - timid = 1 + width = 9 }, /obj/machinery/bluespace_beacon, /obj/machinery/computer/auxillary_base, diff --git a/_maps/shuttles/emergency_backup.dmm b/_maps/shuttles/emergency_backup.dmm new file mode 100644 index 0000000000..40aae2c044 --- /dev/null +++ b/_maps/shuttles/emergency_backup.dmm @@ -0,0 +1,134 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/machinery/computer/emergency_shuttle{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape/backup) +"c" = ( +/obj/machinery/door/airlock/titanium, +/obj/docking_port/mobile/emergency/backup, +/turf/open/floor/plating, +/area/shuttle/escape/backup) +"f" = ( +/obj/structure/table/wood, +/obj/item/book/manual/random, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape/backup) +"g" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/escape/backup) +"m" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape/backup) +"p" = ( +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape/backup) +"q" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape/backup) +"u" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape/backup) +"x" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape/backup) +"F" = ( +/obj/structure/table/wood, +/obj/item/paper/fluff/stations/centcom/broken_evac, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape/backup) +"P" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape/backup) + +(1,1,1) = {" +m +m +c +m +m +m +m +m +"} +(2,1,1) = {" +q +g +g +g +x +g +g +q +"} +(3,1,1) = {" +m +g +g +g +g +g +g +m +"} +(4,1,1) = {" +m +p +p +p +p +g +p +m +"} +(5,1,1) = {" +m +p +p +p +p +g +p +m +"} +(6,1,1) = {" +m +g +u +g +g +g +g +m +"} +(7,1,1) = {" +q +a +F +f +P +g +g +q +"} +(8,1,1) = {" +m +m +m +m +m +m +m +m +"} diff --git a/_maps/shuttles/escape_pod_default.dmm b/_maps/shuttles/escape_pod_default.dmm index c2625b0e57..84d0923b56 100644 --- a/_maps/shuttles/escape_pod_default.dmm +++ b/_maps/shuttles/escape_pod_default.dmm @@ -20,7 +20,6 @@ }, /obj/docking_port/mobile/pod{ port_direction = 2; - timid = 1; dwidth = 1; width = 3; height = 4 diff --git a/_maps/shuttles/escape_pod_large.dmm b/_maps/shuttles/escape_pod_large.dmm index 6a36801db9..fbbadaadff 100644 --- a/_maps/shuttles/escape_pod_large.dmm +++ b/_maps/shuttles/escape_pod_large.dmm @@ -74,7 +74,6 @@ height = 6; launch_status = 0; port_direction = 2; - timid = 1; width = 5 }, /turf/open/floor/mineral/titanium/blue, diff --git a/_maps/shuttles/labour_box.dmm b/_maps/shuttles/labour_box.dmm index 636458a64c..735bc1c372 100644 --- a/_maps/shuttles/labour_box.dmm +++ b/_maps/shuttles/labour_box.dmm @@ -41,7 +41,7 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/labor) "h" = ( -/obj/machinery/mineral/labor_claim_console{ +/obj/machinery/mineral/stacking_unit_console{ machinedir = 2; pixel_x = 30; pixel_y = 30 diff --git a/_maps/shuttles/labour_delta.dmm b/_maps/shuttles/labour_delta.dmm index 6df69ba0f6..d8238a5555 100644 --- a/_maps/shuttles/labour_delta.dmm +++ b/_maps/shuttles/labour_delta.dmm @@ -49,7 +49,7 @@ /turf/open/floor/mineral/plastitanium/brig, /area/shuttle/labor) "i" = ( -/obj/machinery/mineral/labor_claim_console{ +/obj/machinery/mineral/stacking_unit_console{ machinedir = 2; pixel_x = 30; pixel_y = 30 diff --git a/_maps/shuttles/pirate_default.dmm b/_maps/shuttles/pirate_default.dmm index 20723e9038..61c5c88af6 100644 --- a/_maps/shuttles/pirate_default.dmm +++ b/_maps/shuttles/pirate_default.dmm @@ -1,43 +1,67 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( -/turf/template_noop, -/area/template_noop) -"ab" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "piratebridge" +/obj/structure/chair/comfy/shuttle{ + dir = 1 }, -/obj/structure/grille, -/obj/structure/window/plastitanium, -/turf/open/floor/plating, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/pod/dark, /area/shuttle/pirate) -"ac" = ( +"ab" = ( /obj/structure/table, -/obj/machinery/recharger, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"ad" = ( /obj/effect/decal/cleanable/dirt, +/obj/machinery/recharger{ + pixel_x = 4 + }, +/obj/item/grenade/smokebomb{ + pixel_x = -6; + pixel_y = 10 + }, +/obj/item/grenade/smokebomb{ + pixel_x = -6 + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 10 + }, +/area/shuttle/pirate) +"ac" = ( /obj/machinery/computer/shuttle/pirate, -/turf/open/floor/plasteel/dark, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/darkred/side, /area/shuttle/pirate) -"ae" = ( +"ad" = ( /obj/structure/table, /obj/machinery/button/door{ id = "piratebridge"; name = "Bridge Shutters Control"; pixel_y = -5 }, -/obj/effect/decal/cleanable/dirt, /obj/item/radio/intercom{ pixel_y = 5 }, -/turf/open/floor/plasteel/dark, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/darkred/side{ + dir = 6 + }, /area/shuttle/pirate) -"af" = ( +"ae" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/darkred/corner{ + dir = 1 + }, /area/shuttle/pirate) +"af" = ( +/turf/template_noop, +/area/template_noop) "ag" = ( /obj/structure/chair/comfy/shuttle{ dir = 1 @@ -46,1085 +70,1000 @@ /area/shuttle/pirate) "ah" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer/monitor/secret{ - dir = 8 +/turf/open/floor/plasteel/darkred/corner{ + dir = 4 }, -/turf/open/floor/plasteel/dark, /area/shuttle/pirate) "ai" = ( -/turf/closed/wall/mineral/plastitanium, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 5 + }, +/obj/item/book/manual/wiki/barman_recipes{ + pixel_x = -8 + }, +/turf/open/floor/plasteel/bar, /area/shuttle/pirate) "aj" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/shuttle/pirate) "ak" = ( -/obj/machinery/light/small, -/obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/machinery/shuttle_scrambler, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"al" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -24; - req_access = null +/obj/structure/table, +/obj/item/storage/fancy/cigarettes{ + pixel_x = 2; + pixel_y = 6 }, -/obj/structure/chair/comfy/shuttle{ - dir = 8 +/obj/item/storage/fancy/cigarettes/cigpack_carp{ + pixel_x = 10; + pixel_y = 6 + }, +/obj/item/storage/fancy/cigarettes/cigpack_robust{ + pixel_x = 2 + }, +/obj/item/storage/fancy/cigarettes/cigpack_midori{ + pixel_x = 10 + }, +/obj/item/storage/fancy/cigarettes/cigpack_shadyjims{ + pixel_x = 2; + pixel_y = -6 + }, +/obj/item/storage/fancy/cigarettes/cigpack_uplift{ + pixel_x = 10; + pixel_y = -6 }, +/obj/item/lighter{ + pixel_x = -14; + pixel_y = -6 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) +"al" = ( +/obj/machinery/loot_locator, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/darkred/side{ + dir = 9 + }, /area/shuttle/pirate) "am" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, /area/shuttle/pirate) "an" = ( /obj/structure/chair/comfy/shuttle{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/obj/machinery/button/door{ + id = "piratebridgebolt"; + name = "Bridge Bolt Control"; + normaldoorcontrol = 1; + pixel_y = -24; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/darkred/corner, /area/shuttle/pirate) "ao" = ( -/obj/machinery/light/small, -/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/pirate{ - dir = 8 +/obj/structure/chair/comfy/shuttle{ + dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"ap" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/mob_spawn/human/pirate{ +/obj/machinery/light/small{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"aq" = ( -/obj/machinery/light/small{ - dir = 1 +/obj/machinery/airalarm/all_access{ + dir = 8; + pixel_x = 24 }, /obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/pod/dark, +/area/shuttle/pirate) +"ap" = ( +/obj/machinery/door/airlock/hatch{ + name = "Port Gun Battery" + }, +/obj/structure/barricade/wooden/crude, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/pod/dark, +/area/shuttle/pirate/vault) +"aq" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm{ - pixel_y = 24; - req_access = null +/obj/structure/closet/crate, +/obj/item/storage/bag/money/vault, +/obj/item/stack/sheet/mineral/gold{ + amount = 3; + pixel_x = -2; + pixel_y = 2 }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) +/obj/item/stack/sheet/mineral/silver{ + amount = 8; + pixel_x = 2; + pixel_y = -1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) "ar" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mob_spawn/human/pirate/gunner{ - dir = 8 +/obj/structure/rack{ + dir = 8; + layer = 2.9 }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) +/obj/item/storage/box/lethalshot, +/obj/item/shield/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/shield/riot, +/obj/item/gun/ballistic/shotgun/automatic/combat{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/structure/sign/poster/contraband/revolver{ + pixel_x = 32 + }, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) "as" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/command{ - name = "Bridge" +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/gun/energy/laser{ + pixel_x = -6; + pixel_y = 9 }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) +/obj/item/gun/energy/laser{ + pixel_x = 3; + pixel_y = 9 + }, +/obj/item/gun/energy/laser{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/gun/energy/laser{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/machinery/recharger, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) "at" = ( -/obj/structure/closet/crate/freezer/blood, -/obj/effect/turf_decal/bot, +/obj/machinery/light/small, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white, -/area/shuttle/pirate) +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/storage/backpack/duffelbag/syndie/x4{ + pixel_y = -4 + }, +/obj/item/melee/transforming/energy/sword/pirate{ + pixel_x = -1; + pixel_y = 10 + }, +/obj/item/melee/transforming/energy/sword/pirate{ + pixel_x = 6; + pixel_y = 10 + }, +/obj/item/melee/transforming/energy/sword/pirate{ + pixel_x = 13; + pixel_y = 10 + }, +/turf/open/floor/pod/light, +/area/shuttle/pirate/vault) "au" = ( -/obj/machinery/light/small{ - dir = 1 +/obj/machinery/door/airlock/hatch{ + id_tag = "piratebridgebolt"; + name = "Bridge" }, -/obj/machinery/airalarm{ - pixel_y = 24; - req_access = null +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 }, -/obj/machinery/sleeper, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/white, /area/shuttle/pirate) "av" = ( -/obj/machinery/iv_drip, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/white, +/obj/machinery/door/airlock/hatch{ + name = "Starboard Gun Battery" + }, +/obj/structure/barricade/wooden/crude, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/pod/dark, /area/shuttle/pirate) "aw" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/mob_spawn/human/pirate/captain, -/turf/open/floor/wood, -/area/shuttle/pirate) -"ax" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock{ - name = "Crew Cabin" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"ay" = ( +/obj/machinery/vending/wallmed{ + pixel_x = -28 + }, +/turf/open/floor/pod/dark, +/area/shuttle/pirate/vault) +"ax" = ( /obj/machinery/light/small{ dir = 1 }, -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/shuttle/pirate/vault) +"ay" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Armory" + }, /obj/effect/decal/cleanable/dirt, -/obj/item/storage/toolbox/emergency, -/obj/item/extinguisher, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"az" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/shuttle/pirate/vault) +"az" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, /area/shuttle/pirate) "aA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/airalarm/all_access{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, /area/shuttle/pirate) "aB" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/computer/monitor/secret{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm{ - pixel_y = 24; - req_access = null +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/all_access{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 10 }, -/turf/open/floor/plasteel/dark, /area/shuttle/pirate) "aC" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/table, +/obj/machinery/shuttle_scrambler, /obj/effect/decal/cleanable/dirt, -/obj/item/paper_bin{ - pixel_x = -1; - pixel_y = 6 +/turf/open/floor/plasteel/darkred/side{ + dir = 5 }, -/obj/item/folder, -/obj/item/pen, -/turf/open/floor/plasteel/dark, /area/shuttle/pirate) "aD" = ( -/obj/structure/sign/departments/medbay/alt, -/turf/closed/wall/mineral/plastitanium/nodiagonal, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, /area/shuttle/pirate) "aE" = ( +/obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/space_heater, +/turf/open/floor/plating, /area/shuttle/pirate) "aF" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white/side{ - dir = 1 +/obj/machinery/door/airlock/external/glass{ + id_tag = "pirateportexternal" }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, /area/shuttle/pirate) "aG" = ( -/turf/open/floor/plasteel/white/side{ - dir = 1 +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-4" }, +/obj/item/wrench{ + anchored = 1 + }, +/turf/open/floor/plating, /area/shuttle/pirate) "aH" = ( -/obj/structure/closet/crate/freezer/surplus_limbs, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, +/obj/structure/shuttle/engine/propulsion/left, +/turf/open/floor/plating/airless, /area/shuttle/pirate) "aI" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/latex, -/obj/item/surgical_drapes, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/shuttle/pirate) -"aJ" = ( /obj/machinery/light/small{ - brightness = 3; dir = 8 }, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -24; - req_access = null +/turf/open/floor/plating, +/area/shuttle/pirate) +"aJ" = ( +/obj/machinery/door/airlock/external/glass{ + id_tag = "pirateportexternal" }, -/obj/structure/closet/secure_closet/personal, -/turf/open/floor/wood, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, /area/shuttle/pirate) "aK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/wood, +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, /area/shuttle/pirate) "aL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock{ - name = "Captain's Quarters" +/obj/effect/turf_decal/bot, +/obj/machinery/suit_storage_unit/pirate, +/obj/machinery/light/small{ + dir = 1 }, -/turf/open/floor/wood, +/turf/open/floor/plating, /area/shuttle/pirate) "aM" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm{ - pixel_y = 24; - req_access = null +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light/small{ + dir = 8 }, -/turf/open/floor/plasteel/floorgrime, +/turf/open/floor/plating, /area/shuttle/pirate) "aN" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/floorgrime, +/obj/machinery/button/door{ + id = "pirateportexternal"; + name = "External Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -4; + pixel_y = -24; + specialfunctions = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/all_access{ + pixel_y = 24 + }, +/turf/open/floor/plating, /area/shuttle/pirate) "aO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/button/door{ + id = "piratestarboardexternal"; + name = "External Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 4; + pixel_y = -24; + specialfunctions = 4 }, +/obj/effect/turf_decal/stripes/corner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"aP" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Pirate Corvette APC"; + pixel_y = 24; + req_access = null + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/turf/open/floor/plating, +/area/shuttle/pirate) +"aP" = ( +/obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/command{ - name = "Bridge" +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 }, -/turf/open/floor/plasteel/dark, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, /area/shuttle/pirate) "aQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/porta_turret/syndicate/energy{ + dir = 1; + faction = list("pirate"); + icon_state = "standard_lethal"; + mode = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/closed/wall/mineral/plastitanium/nodiagonal, /area/shuttle/pirate) "aR" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/dark, +/obj/machinery/porta_turret/syndicate/energy{ + faction = list("pirate"); + icon_state = "standard_lethal"; + mode = 1 + }, +/turf/closed/wall/mineral/plastitanium, /area/shuttle/pirate) "aS" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"aT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plating, /area/shuttle/pirate) -"aU" = ( +"aT" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/door/airlock/command{ - name = "Bridge" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/shuttle/pirate) +"aU" = ( +/obj/structure/sign/departments/engineering, +/turf/closed/wall/mineral/plastitanium/nodiagonal, /area/shuttle/pirate) "aV" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white/side{ - dir = 8 +/obj/structure/rack, +/obj/item/tank/jetpack/carbondioxide{ + pixel_x = -3; + pixel_y = 3 }, +/obj/item/tank/jetpack/carbondioxide, +/turf/open/floor/plating, /area/shuttle/pirate) "aW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/light/small{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"aX" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/pirate{ + dir = 4; + x_offset = -3; + y_offset = 7 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"aY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"aZ" = ( -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/shuttle/pirate) -"ba" = ( -/obj/structure/table, -/obj/item/circular_saw, -/obj/item/scalpel{ - pixel_y = 12 - }, -/obj/item/cautery{ - pixel_x = 4 +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 }, -/obj/machinery/light/small{ - dir = 4 +/turf/open/floor/plasteel/darkred/side{ + dir = 6 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white, /area/shuttle/pirate) -"bb" = ( -/obj/structure/table/wood, +"be" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/item/storage/box/matches, -/obj/item/clothing/mask/cigarette/cigar, -/obj/item/reagent_containers/food/drinks/bottle/rum{ - name = "Captain Pete's Private Reserve Cuban Spaced Rum"; - pixel_x = -6; - pixel_y = 8 +/obj/machinery/firealarm{ + pixel_y = 24 }, -/turf/open/floor/wood, -/area/shuttle/pirate) -"bc" = ( -/obj/machinery/button/door{ - id = "piratevault"; - name = "Vault Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -8; - pixel_y = -24; - specialfunctions = 4 +/obj/effect/turf_decal/bot, +/obj/machinery/suit_storage_unit/pirate, +/turf/open/floor/plating, +/area/shuttle/pirate) +"bf" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 }, +/obj/effect/decal/cleanable/dirt, /obj/machinery/turretid{ icon_state = "control_kill"; lethal = 1; locked = 0; - pixel_x = 4; pixel_y = -24; req_access = null }, -/obj/structure/chair/comfy/shuttle{ +/turf/open/floor/plasteel/darkred/corner{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/shuttle/pirate) -"bd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"be" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/secure_closet/personal, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"bf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/secure_closet/personal, -/turf/open/floor/plasteel/floorgrime, /area/shuttle/pirate) "bg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/vault{ - id_tag = "piratevault"; - name = "Vault" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/dark, -/area/shuttle/pirate) -"bh" = ( -/obj/structure/table, -/obj/item/storage/firstaid/brute{ - pixel_x = 3; - pixel_y = 3 +/obj/machinery/door/airlock/hatch{ + name = "Armory Access" }, -/obj/item/storage/firstaid/fire, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white/side{ - dir = 10 - }, -/area/shuttle/pirate) -"bi" = ( -/obj/machinery/light/small, -/obj/structure/table, -/obj/item/storage/box/syringes, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = -3; - pixel_y = 3 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 3 +/turf/open/floor/plasteel/vault{ + dir = 5 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white/side, -/area/shuttle/pirate) -"bj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/side, /area/shuttle/pirate) "bk" = ( +/obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white/side, +/obj/machinery/power/smes/engineering{ + charge = 1e+006 + }, +/obj/structure/cable, +/turf/open/floor/plating, /area/shuttle/pirate) "bl" = ( -/obj/structure/table/optable, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white/side{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, +/turf/open/floor/plasteel/bar, /area/shuttle/pirate) "bm" = ( -/obj/structure/table, -/obj/item/retractor, -/obj/item/hemostat, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/white, -/area/shuttle/pirate) -"bn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock{ - name = "Crew Quarters" - }, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/bar, /area/shuttle/pirate) "bo" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/dark, -/area/shuttle/pirate/vault) -"bp" = ( -/obj/machinery/airalarm{ - pixel_y = 24; - req_access = null - }, -/turf/open/floor/pod/dark, -/area/shuttle/pirate/vault) -"bq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/pod/dark, -/area/shuttle/pirate/vault) -"br" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 28 - }, -/turf/open/floor/pod/dark, -/area/shuttle/pirate/vault) -"bs" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Medbay" +/obj/machinery/light/small{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"bt" = ( /obj/structure/sign/warning/vacuum/external{ - pixel_x = -32 - }, -/obj/machinery/light/small{ - dir = 1 + pixel_x = 32 }, -/obj/machinery/suit_storage_unit/pirate, +/turf/open/floor/plating, +/area/shuttle/pirate) +"br" = ( +/obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, /turf/open/floor/plating, /area/shuttle/pirate) +"bt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/vomit/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) "bu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/structure/closet/secure_closet/personal, +/obj/machinery/airalarm/all_access{ + pixel_y = 24 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/floorgrime, /area/shuttle/pirate) "bv" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"bw" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/storage/belt/utility, -/obj/item/radio/off, -/obj/item/radio/off, /turf/open/floor/plasteel, /area/shuttle/pirate) -"bx" = ( -/obj/structure/closet/crate, -/obj/item/grenade/smokebomb{ - pixel_x = -4 +"bw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/item/grenade/smokebomb{ - pixel_x = 2 +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = -24 }, -/turf/open/floor/pod/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/pod/dark, /area/shuttle/pirate/vault) -"by" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 +"bx" = ( +/obj/machinery/door/airlock{ + name = "Captain's Quarters" }, -/obj/item/shield/riot{ - pixel_x = -3; - pixel_y = 3 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/shuttle/pirate) +"by" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, -/obj/item/shield/riot, -/turf/open/floor/pod/light, -/area/shuttle/pirate/vault) +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) "bz" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/gun/energy/laser{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/gun/energy/laser, -/obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/light, -/area/shuttle/pirate/vault) +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) "bA" = ( -/obj/structure/closet/crate, -/obj/item/storage/bag/money, -/turf/open/floor/pod/light, -/area/shuttle/pirate/vault) +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/pirate) "bB" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 +/obj/machinery/door/airlock{ + name = "Crew Quarters" }, -/obj/item/storage/belt/utility, -/obj/item/radio/off, -/obj/item/radio/off, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, /area/shuttle/pirate) "bC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner, /area/shuttle/pirate) "bD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral/corner, /area/shuttle/pirate) "bE" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_x = 32 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/suit_storage_unit/pirate, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, /area/shuttle/pirate) "bF" = ( -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/external{ - id_tag = "pirateportexternal" - }, -/obj/docking_port/mobile/pirate{ - callTime = 100; - dheight = 0; - dir = 4; - dwidth = 11; - height = 21; - id = "pirateship"; - launch_status = 0; - movement_force = list("KNOCKDOWN" = 0, "THROW" = 0); - name = "Pirate Ship"; - port_direction = 8; - preferred_direction = 1; - timid = 0; - width = 23 +/obj/effect/turf_decal/stripes/line{ + dir = 6 }, -/obj/docking_port/stationary{ - dir = 4; - dwidth = 11; - height = 21; - id = "pirateship_home"; - name = "Deep Space"; - width = 23 +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, -/turf/open/floor/plating, -/area/shuttle/pirate) -"bG" = ( -/turf/open/floor/plating, -/area/shuttle/pirate) +/turf/open/floor/pod/dark, +/area/shuttle/pirate/vault) "bH" = ( -/obj/machinery/door/airlock/external, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/pirate) -"bI" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/structure/chair/wood/normal, +/obj/machinery/light/small{ dir = 8 }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 + dir = 1 }, -/turf/open/floor/plasteel, +/turf/open/floor/wood, +/area/shuttle/pirate) +"bI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar, /area/shuttle/pirate) "bJ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 +/obj/machinery/door/airlock{ + name = "Cabin 1" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 }, -/turf/open/floor/plasteel/floorgrime, /area/shuttle/pirate) "bK" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24; - req_access = null; - req_access_txt = "152" +/obj/machinery/door/airlock{ + name = "Cabin 2" }, /obj/effect/decal/cleanable/dirt, -/obj/structure/rack{ - dir = 8; - layer = 2.9 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 }, -/obj/item/storage/toolbox/mechanical, -/obj/item/multitool, -/turf/open/floor/plasteel/floorgrime, /area/shuttle/pirate) "bL" = ( -/obj/machinery/light/small{ - brightness = 3; - dir = 8 +/obj/machinery/door/airlock/engineering{ + name = "Engineering" }, -/obj/structure/closet/crate, -/obj/item/storage/box/lethalshot, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/light, -/area/shuttle/pirate/vault) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/shuttle/pirate) "bM" = ( -/turf/open/floor/pod/dark, -/area/shuttle/pirate/vault) -"bN" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/gun/ballistic/shotgun/automatic/combat{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/light, -/area/shuttle/pirate/vault) -"bO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/effect/mob_spawn/human/pirate{ dir = 1 }, -/turf/open/floor/pod/dark, -/area/shuttle/pirate/vault) -"bP" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/gun/energy/laser{ - pixel_x = -3; - pixel_y = 3 +/obj/machinery/airalarm/all_access{ + dir = 1; + pixel_y = -24 }, -/obj/item/gun/energy/laser, -/turf/open/floor/pod/light, -/area/shuttle/pirate/vault) -"bQ" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, /obj/machinery/light/small{ dir = 4 }, -/obj/item/stack/sheet/mineral/gold{ - amount = 3; - pixel_x = -2; - pixel_y = 2 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, -/obj/item/stack/sheet/mineral/silver{ - amount = 8; - pixel_x = 2; - pixel_y = -1 +/turf/open/floor/plasteel/vault{ + dir = 5 }, -/turf/open/floor/pod/light, -/area/shuttle/pirate/vault) -"bR" = ( +/area/shuttle/pirate) +"bN" = ( +/obj/effect/mob_spawn/human/pirate{ + dir = 1 + }, +/obj/machinery/airalarm/all_access{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ - brightness = 3; dir = 8 }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -24; - req_access = null - }, -/obj/structure/rack{ - dir = 8; - layer = 2.9 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, -/obj/item/weldingtool/largetank, -/obj/item/storage/toolbox/electrical, -/obj/item/clothing/head/welding{ - pixel_x = 4; - pixel_y = 4 +/turf/open/floor/plasteel/vault{ + dir = 5 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, /area/shuttle/pirate) -"bS" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, +"bO" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, /area/shuttle/pirate) -"bT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, +"bP" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"bU" = ( -/obj/machinery/door/airlock/external, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, /turf/open/floor/plating, /area/shuttle/pirate) -"bV" = ( +"bQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/pirate) -"bW" = ( -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/external{ - id_tag = "piratestarboardexternal" - }, /obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-4" }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plating, /area/shuttle/pirate) "bX" = ( -/obj/structure/closet/emcloset/anchored, -/obj/machinery/button/door{ - id = "pirateportexternal"; - name = "External Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -24; - specialfunctions = 4 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/pirate) -"bY" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/floorgrime, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 4 + }, +/obj/item/flashlight{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/lights/bulbs, +/obj/item/stack/sheet/mineral/plasma{ + amount = 10 + }, +/obj/item/multitool, +/turf/open/floor/plating, /area/shuttle/pirate) "bZ" = ( -/obj/structure/closet/crate, -/obj/item/tank/jetpack/carbondioxide, -/obj/item/tank/jetpack/carbondioxide, -/turf/open/floor/pod/light, -/area/shuttle/pirate/vault) -"ca" = ( -/obj/structure/closet/crate, -/obj/item/coin/gold, -/obj/item/coin/gold, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/gold, +/obj/machinery/door/airlock/external/glass{ + id_tag = "piratestarboardexternal" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/light, -/area/shuttle/pirate/vault) -"cb" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/bot, -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plasteel/floorgrime, +/turf/open/floor/plating, /area/shuttle/pirate) -"cc" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 +"ce" = ( +/obj/machinery/door/airlock/external/glass{ + id_tag = "piratestarboardexternal" }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"cd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 +/obj/docking_port/mobile/pirate{ + callTime = 100; + dheight = 0; + dir = 1; + dwidth = 11; + height = 16; + id = "pirateship"; + launch_status = 0; + movement_force = list("KNOCKDOWN" = 0, "THROW" = 0); + name = "Pirate Ship"; + port_direction = 2; + preferred_direction = 1; + width = 17 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"ce" = ( -/obj/structure/closet/emcloset/anchored, -/obj/machinery/button/door{ - id = "piratestarboardexternal"; - name = "External Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 24; - specialfunctions = 4 +/obj/docking_port/stationary{ + dir = 1; + dwidth = 11; + height = 16; + id = "pirateship_home"; + name = "Deep Space"; + width = 17 }, /turf/open/floor/plating, /area/shuttle/pirate) -"cf" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks/beer{ - dir = 4 - }, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 +"df" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 4; + faction = list("pirate"); + icon_state = "standard_lethal"; + mode = 1 }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/pirate) +"ek" = ( /obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks, /turf/open/floor/plasteel/bar, /area/shuttle/pirate) -"cg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/public/glass{ - name = "Bar" - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"ch" = ( -/obj/structure/table, -/obj/machinery/door/window/southleft{ - base_state = "left"; +"ep" = ( +/obj/structure/window/reinforced{ dir = 1; - icon_state = "left"; - name = "Explosive Ordinance" + pixel_y = 1 }, -/obj/item/grenade/plastic/x4{ - pixel_x = -5 +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/pirate) +"er" = ( +/obj/structure/shuttle/engine/propulsion/right, +/turf/open/floor/plating/airless, +/area/shuttle/pirate) +"et" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/pirate) +"eu" = ( +/obj/structure/girder, +/obj/item/stack/rods{ + amount = 3 }, -/obj/item/grenade/plastic/x4{ - pixel_x = 3 +/turf/open/floor/plating, +/area/shuttle/pirate) +"ew" = ( +/obj/structure/girder, +/obj/item/stack/rods{ + amount = 5 }, -/obj/item/grenade/plastic/x4{ - pixel_x = 11 +/turf/open/floor/plating, +/area/shuttle/pirate) +"ex" = ( +/obj/structure/window/reinforced, +/obj/structure/frame/machine, +/obj/item/wrench, +/turf/open/floor/plating, +/area/shuttle/pirate) +"ey" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "piratebridge" }, +/obj/structure/grille, +/obj/structure/window/plastitanium, +/turf/open/floor/plating, +/area/shuttle/pirate) +"ez" = ( +/obj/structure/window/reinforced, +/obj/structure/frame/machine, +/obj/item/stack/cable_coil/cut/red, +/turf/open/floor/plating, +/area/shuttle/pirate) +"eA" = ( /obj/structure/window/reinforced{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/light, -/area/shuttle/pirate/vault) -"ci" = ( -/obj/structure/table, -/obj/item/melee/transforming/energy/sword/pirate, -/obj/item/melee/transforming/energy/sword/pirate{ - pixel_y = 12 - }, -/obj/item/melee/transforming/energy/sword/pirate{ - pixel_x = 12; - pixel_y = 7 + dir = 1; + pixel_y = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/light, -/area/shuttle/pirate/vault) -"cj" = ( -/obj/machinery/light/small, -/obj/effect/turf_decal/stripes/end{ - dir = 1 +/obj/structure/frame/computer{ + anchored = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/loot_locator, -/turf/open/floor/pod/light, -/area/shuttle/pirate/vault) -"ck" = ( -/obj/structure/table, -/obj/machinery/recharger, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/light, -/area/shuttle/pirate/vault) -"cl" = ( +/turf/open/floor/pod/dark, +/area/shuttle/pirate) +"eE" = ( +/obj/structure/closet/secure_closet/personal, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/machinery/telecomms/relay, -/turf/open/floor/pod/light, -/area/shuttle/pirate/vault) -"cm" = ( -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/floorgrime, /area/shuttle/pirate) -"cn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/shuttle/pirate) -"co" = ( -/obj/structure/toilet{ - pixel_y = 20 - }, -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/light/small, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/showroomfloor, +"eS" = ( +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/wood, /area/shuttle/pirate) -"cp" = ( +"ft" = ( /obj/machinery/door/airlock{ name = "Unisex Restrooms" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/showroomfloor, /area/shuttle/pirate) -"cq" = ( -/obj/machinery/airalarm{ - pixel_y = 24; - req_access = null +"fw" = ( +/obj/effect/mob_spawn/human/pirate/captain{ + dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/bar, -/area/shuttle/pirate) -"cr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/bar, -/area/shuttle/pirate) -"cs" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/bar, -/area/shuttle/pirate) -"ct" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 5 +/obj/machinery/airalarm/all_access{ + pixel_y = 24 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/bar, +/turf/open/floor/wood, /area/shuttle/pirate) -"cu" = ( -/obj/machinery/atmospherics/components/unary/tank/nitrogen{ - dir = 4 - }, -/obj/effect/turf_decal/bot, +"fB" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"cv" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "N2 Out"; - target_pressure = 4500 +/obj/structure/toilet{ + dir = 1 }, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"cw" = ( -/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"cx" = ( -/obj/machinery/airalarm{ - pixel_y = 24; - req_access = null +/obj/structure/sink{ + dir = 4; + pixel_x = 11; + pixel_y = 7 }, -/obj/structure/table, -/obj/item/storage/box/lights/mixed{ - pixel_x = -4 +/obj/machinery/light/small{ + dir = 8 }, -/obj/item/storage/belt/utility{ - pixel_x = 4 +/turf/open/floor/plasteel/showroomfloor, +/area/shuttle/pirate) +"fM" = ( +/obj/structure/table/wood, +/obj/item/storage/box/matches, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + name = "Captain Pete's Private Reserve Cuban Spaced Rum"; + pixel_x = -6; + pixel_y = 8 }, -/obj/item/analyzer{ - pixel_x = 3; - pixel_y = 2 +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = 6; + pixel_y = 12 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/clothing/mask/cigarette/cigar, +/turf/open/floor/wood, +/area/shuttle/pirate) +"fV" = ( +/obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, +/turf/open/floor/plating, /area/shuttle/pirate) -"cy" = ( -/obj/machinery/portable_atmospherics/pump, -/obj/structure/window/reinforced{ - dir = 8 +"fW" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/pirate) +"fY" = ( +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = -24 }, -/obj/effect/turf_decal/delivery, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"cz" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/structure/window/reinforced{ +/obj/machinery/light/small{ dir = 8 }, -/obj/effect/turf_decal/delivery, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"cA" = ( -/obj/structure/table/reinforced, -/obj/item/lighter, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/bar, -/area/shuttle/pirate) -"cB" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/bar, -/area/shuttle/pirate) -"cC" = ( -/turf/open/floor/plasteel/bar, -/area/shuttle/pirate) -"cD" = ( -/obj/structure/closet/crate, +/obj/structure/closet/secure_closet/freezer{ + locked = 0; + name = "fridge" + }, /obj/item/storage/box/donkpockets{ pixel_x = 2; pixel_y = 3 @@ -1137,1190 +1076,330 @@ pixel_y = -6 }, /obj/item/reagent_containers/food/snacks/chocolatebar, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/bar, -/area/shuttle/pirate) -"cE" = ( -/obj/machinery/computer/turbine_computer{ - dir = 4; - id = "pirateturbine" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/shuttle/pirate) -"cF" = ( -/obj/structure/chair/stool, -/obj/machinery/airalarm{ - pixel_y = 24; - req_access = null - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/shuttle/pirate) -"cG" = ( -/obj/machinery/power/smes{ - capacity = 9e+006; - charge = 10000 - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/shuttle/pirate) -"cH" = ( -/obj/structure/chair/stool, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Pirate Ship APC"; - pixel_y = 26; - req_access = null - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/shuttle/pirate) -"cI" = ( -/obj/machinery/computer/monitor/secret{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/side{ - dir = 5 - }, -/area/shuttle/pirate) -"cJ" = ( -/obj/machinery/atmospherics/components/unary/tank/oxygen{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"cK" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "O2 Out"; - target_pressure = 4500 - }, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"cL" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general{ - level = 2 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"cM" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"cN" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Port Out"; - target_pressure = 4500 - }, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"cO" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"cP" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/bar, /area/shuttle/pirate) -"cQ" = ( -/obj/structure/table/reinforced, -/obj/item/book/manual/wiki/barman_recipes{ - pixel_x = -4 - }, +"gb" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/boozeomat/all_access, /turf/open/floor/plasteel/bar, /area/shuttle/pirate) -"cR" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/bar, -/area/shuttle/pirate) -"cS" = ( -/obj/structure/sign/departments/engineering{ - pixel_x = 32 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/bar, -/area/shuttle/pirate) -"cT" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/yellow, -/obj/item/wrench, -/obj/item/crowbar, -/obj/item/clothing/glasses/meson/engine, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/corner{ - dir = 1 - }, -/area/shuttle/pirate) -"cU" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-2" +"wR" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 8; + faction = list("pirate"); + icon_state = "standard_lethal"; + mode = 1 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"cV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"cW" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/item/stack/cable_coil/red{ - pixel_x = -1; - pixel_y = 3 - }, -/obj/item/stack/cable_coil/red{ - pixel_x = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/corner{ - dir = 4 - }, -/area/shuttle/pirate) -"cX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/shuttle/pirate) -"cY" = ( -/obj/structure/sign/departments/engineering{ - pixel_x = -32 - }, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"cZ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "O2 to Incinerator"; - target_pressure = 4500 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"da" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"db" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"dc" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 25 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/space_heater, -/turf/open/floor/plasteel/caution{ - dir = 4 - }, -/area/shuttle/pirate) -"dd" = ( -/obj/structure/table/reinforced, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/fancy/cigarettes/cigpack_uplift{ - pixel_x = 8; - pixel_y = -14 - }, -/obj/item/storage/fancy/cigarettes/cigpack_shadyjims{ - pixel_x = 1; - pixel_y = -14 - }, -/obj/item/storage/fancy/cigarettes/cigpack_robust{ - pixel_x = -6; - pixel_y = -14 - }, -/obj/item/storage/fancy/cigarettes/cigpack_midori{ - pixel_x = 8; - pixel_y = -8 - }, -/obj/item/storage/fancy/cigarettes/cigpack_carp{ - pixel_x = 1; - pixel_y = -8 - }, -/obj/item/storage/fancy/cigarettes, -/turf/open/floor/plasteel/bar, -/area/shuttle/pirate) -"df" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/bar, -/area/shuttle/pirate) -"dg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/shuttle/pirate) -"dh" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engineering" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"di" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/warning/nosmoking{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"dj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"dk" = ( -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"dl" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"dm" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"dn" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"do" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engineering" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"dp" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"dq" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold4w/general{ - level = 2 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"dr" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"ds" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Plasma to Incinerator"; - target_pressure = 4500 - }, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"dt" = ( -/obj/machinery/atmospherics/components/unary/tank/toxins{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"du" = ( -/obj/machinery/vending/boozeomat{ - req_access_txt = "0" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/bar, -/area/shuttle/pirate) -"dv" = ( -/obj/machinery/door/window/southleft{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Bar" - }, -/turf/open/floor/plasteel/bar, -/area/shuttle/pirate) -"dw" = ( -/obj/structure/closet/firecloset/full{ - anchored = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/side, -/area/shuttle/pirate) -"dx" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/light/small, -/turf/open/floor/plasteel/yellow/corner{ - dir = 8 - }, -/area/shuttle/pirate) -"dy" = ( -/obj/machinery/button/door{ - id = "pirateturbinevent"; - name = "Turbine Vent Control"; - pixel_x = -6; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/button/door{ - id = "pirateturbineauxvent"; - name = "Turbine Auxiliary Vent Control"; - pixel_x = 6; - pixel_y = -24 - }, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"dz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"dA" = ( -/obj/machinery/button/ignition{ - id = "pirateincinerator"; - pixel_x = -6; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 2; - target_pressure = 4500 - }, -/obj/machinery/button/door{ - id = "pirateturbinebolt"; - name = "Turbine Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 6; - pixel_y = -24; - specialfunctions = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/shuttle/pirate) -"dB" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/storage/toolbox/mechanical, -/obj/item/clothing/head/welding{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/multitool, -/obj/machinery/light/small, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/yellow/corner, -/area/shuttle/pirate) -"dC" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - pixel_x = -1 - }, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_y = 5 - }, -/obj/item/stack/sheet/mineral/plastitanium{ - amount = 30; - pixel_x = 3; - pixel_y = -2 - }, -/obj/item/stack/rods/fifty, -/turf/open/floor/plasteel/yellow/side, -/area/shuttle/pirate) -"dD" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/caution, -/area/shuttle/pirate) -"dE" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/caution, -/area/shuttle/pirate) -"dF" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/caution, -/area/shuttle/pirate) -"dG" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Port to Incinerator"; - target_pressure = 4500 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/caution, -/area/shuttle/pirate) -"dH" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"dI" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/turf/open/floor/plating/airless, -/area/shuttle/pirate) -"dJ" = ( -/obj/structure/sign/warning/fire, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/shuttle/pirate) -"dK" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - heat_proof = 1; - id_tag = "pirateturbinebolt"; - name = "Turbine Access" - }, -/turf/open/floor/engine, -/area/shuttle/pirate) -"dL" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 2 - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/shuttle/pirate) -"dM" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/turf/open/floor/plating/airless, -/area/shuttle/pirate) -"dN" = ( -/obj/machinery/igniter{ - id = "pirateincinerator" - }, -/turf/open/floor/engine/vacuum, -/area/shuttle/pirate) -"dO" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine/vacuum, -/area/shuttle/pirate) -"dP" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ - dir = 1; - id = "inc_in" - }, -/obj/structure/sign/warning/vacuum/external{ - pixel_y = -32 - }, -/turf/open/floor/engine/vacuum, -/area/shuttle/pirate) -"dQ" = ( -/obj/machinery/door/poddoor{ - id = "pirateturbineauxvent"; - name = "Turbine Auxiliary Vent" - }, -/turf/open/floor/engine/vacuum, -/area/shuttle/pirate) -"dR" = ( -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/compressor{ - comp_id = "pirateturbine"; - dir = 1; - luminosity = 2 - }, -/turf/open/floor/engine/vacuum, -/area/shuttle/pirate) -"dS" = ( -/obj/structure/cable, -/obj/machinery/power/turbine{ - luminosity = 2 - }, -/turf/open/floor/engine/vacuum, -/area/shuttle/pirate) -"dT" = ( -/obj/structure/sign/warning/fire, /turf/closed/wall/mineral/plastitanium, -/area/shuttle/pirate) -"dU" = ( -/obj/machinery/door/poddoor{ - id = "pirateturbinevent"; - name = "Turbine Vent" - }, -/turf/open/floor/engine/vacuum, -/area/shuttle/pirate) -"dV" = ( -/obj/machinery/porta_turret/syndicate{ - dir = 1; - faction = list("pirate") - }, +/area/shuttle/pirate/vault) +"Oe" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/shuttle/pirate) +/area/shuttle/pirate/vault) (1,1,1) = {" -aa -aa -aa -aa -aa -aa -ai -aj -aj -aj -aj -bF -aj -dV -aj -aj -aj +af +af +af +fW aj aj -ai -aa -aa -aa -aa +Oe +Oe +Oe +Oe +Oe +wR +af +af +af +af "} (2,1,1) = {" +af +et +eu +ex +eA aa -aa -aa -aa -aa -ai -aj -aJ -bb -aj -bt -bG -bX -aj -co -aj -cf -cP -du -aj -ai -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aj +ap aw -aK -bc -aj -aj -bH -aj -aj -cp +bw +bF +as +Oe aj -cs -cC -cs -dI -dM -aa -aa -aa +fW +af +af "} -(4,1,1) = {" -aa -aa -aa -aa -ai -aj -aj -aL +(3,1,1) = {" +aQ aj aj -bu -bI -bu -aj -cq -cA -cQ -dd -dv -dI -dM -aa -aa -aa -"} -(5,1,1) = {" -aa -aa -aa -aa aj -ap aj -aM -bd -bn -bv -bJ -bC -cg -cr -cB -cR -df -cC -dI -dM -aa -aa -aa -"} -(6,1,1) = {" -aa -aa -aa -aa aj -aq +Oe ax -aN -be -aj -bw -bK -bY -aj -cs -cC -cS -dg -cs -dI -dM -aa -aa -aa -"} -(7,1,1) = {" -aa -aa -aa -aa -aj +aq ar -aj -aO -bf -aj -aj -aj -aj -aj -ct -cD -aj -dh -aj -aj -ai -aa -aa -aa -"} -(8,1,1) = {" -aa -aa -ab -ab -aj -aj -aj -aP -aj -aj -bx -bL -bZ -aj -aj -aj -aj -di -dw -aj -aa -aa -aa -aa +at +Oe +aM +ep +aH +af "} -(9,1,1) = {" -aa -ab -ab +(4,1,1) = {" af -ak -aj +af +af +af +af +af +Oe ay -aQ -aj -bo -bo -bM -bM -ch -aj -cE -cT -dj -dx -dJ -aj -ai -aa -aa +Oe +Oe +Oe +Oe +br +ep +er +af "} -(10,1,1) = {" -aa -ab -ac +(5,1,1) = {" af -al -aj +af +af +af +af +af +ey az -aR +bx +bH +fM aj -bp -by -bN -bo -ci +aE aj -cF -aW -dk -dy aj -dN +aR +"} +(6,1,1) = {" +af +af +af +ey +ey aj aj -dT -"} -(11,1,1) = {" -aa -ab -ad -ag -am -as aA -aS -bg -bq -bq -bO -bM -cj aj -cG -cU -dl -dz -dK -dO -dR -dS -dU +fw +eS +aj +fV +aF +aI +aJ "} -(12,1,1) = {" -aa -ab -ae +(7,1,1) = {" af -an +af +ey +ey +aC +aW aj -aB -aQ +bg aj -br -bz -bP -bo -ck aj -cH -cV -dm -dA -dL -dP aj aj -dT -"} -(13,1,1) = {" -aa -ab -ab -ah -ao +aN aj -aC -aT aj -bo -bo -bo -bM -cl aj -cI -cW -dn -dB -dJ -dQ -ai -aa -aa "} -(14,1,1) = {" -aa -aa -ab +(8,1,1) = {" +af +af +ey ab +ae +bf aj +bl +fY +ai aj +be aD +aG +ep +aH +"} +(9,1,1) = {" +af +af +ey +ac +ag +am +au +bm +by +ak aU +aL +bP +bX +ep +aK +"} +(10,1,1) = {" +af +af +ey +ad +ah +an aj +bt +bz +bI +bL +bO +bQ +bk +ep +er +"} +(11,1,1) = {" +af +af +ey +ey +al +aB aj +ek bA -bQ -ca aj aj aj -cX -dn -dC +aO +aj +aj aj -aa -aa -aa -aa "} -(15,1,1) = {" -aa -aa -aa -aa +(12,1,1) = {" +af +af +af +ey +ey aj -at -aE -aV -bh aj +gb +bl +ft +fB aj +aS +bZ +bo +ce +"} +(13,1,1) = {" +af +af +af +af +af +af aj aj +bB aj -cu -cJ -cX -do aj aj -ai -aa -aa -aa -"} -(16,1,1) = {" -aa -aa -aa -aa +aT aj -au -aF -aW -bi -aD -bB -bR -cb aj -cv -cK -cY -dp -dD -dI -dM -aa -aa -aa +aR "} -(17,1,1) = {" -aa -aa -aa -aa -aj -av -aG -aX -bj -bs +(14,1,1) = {" +af +af +af +af +af +af +ey +eE bC -bS -cc -cm -cw -cL -cZ -dq -dE -dI -dM -aa -aa -aa -"} -(18,1,1) = {" -aa -aa -aa -aa -ai +bJ +bM aj +aV +ep aH -aY -bk -aj -bD -bT -cd -cn -cx -cM -da -dr -dF -dI -dM -aa -aa -aa +af "} -(19,1,1) = {" -aa -aa -aa -aa -aa +(15,1,1) = {" +aQ aj -aI -aZ -bl aj aj -bU aj aj -cy -cN -db -ds -dG -dI -dM -aa -aa -aa -"} -(20,1,1) = {" -aa -aa -aa -aa -aa -ai -ai -ba -bm aj -bE -bV -ce +bu +bD aj -cz -cO -dc -dt -dH aj -ai -aa -aa -aa -"} -(21,1,1) = {" -aa -aa -aa -aa -aa -aa -ai aj +aP +ep +er +af +"} +(16,1,1) = {" +af +et +ew +ez +eA +ao +av +bv +bE +bK +bN aj aj +fW +af +af +"} +(17,1,1) = {" +af +af +af +fW aj -bW aj -dV aj aj aj aj aj -ai -aa -aa -aa -aa +df +af +af +af +af "} diff --git a/_maps/shuttles/ruin_caravan_victim.dmm b/_maps/shuttles/ruin_caravan_victim.dmm index aa42b30b9f..b00219d967 100644 --- a/_maps/shuttles/ruin_caravan_victim.dmm +++ b/_maps/shuttles/ruin_caravan_victim.dmm @@ -174,10 +174,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/mob/living/simple_animal/hostile/syndicate/ranged/space{ - environment_smash = 0; - name = "Syndicate Salvage Worker" - }, +/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, /turf/open/floor/plasteel/airless, /area/shuttle/caravan/freighter1) "jg" = ( @@ -350,7 +347,7 @@ /area/shuttle/caravan/freighter1) "tg" = ( /obj/effect/turf_decal/box/white/corners{ - dir = 8 + dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/airless/dark, @@ -384,10 +381,7 @@ /turf/open/floor/plasteel/vault/airless, /area/shuttle/caravan/freighter1) "uS" = ( -/mob/living/simple_animal/hostile/syndicate/melee/space{ - environment_smash = 0; - name = "Syndicate Salvage Worker" - }, +/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, /turf/open/floor/plasteel/vault/airless, /area/shuttle/caravan/freighter1) "vt" = ( @@ -398,7 +392,7 @@ /area/shuttle/caravan/freighter1) "xz" = ( /obj/effect/turf_decal/box/white/corners{ - dir = 1 + dir = 8 }, /turf/open/floor/plasteel/airless{ icon_state = "damaged5" @@ -527,7 +521,7 @@ /area/shuttle/caravan/freighter1) "DQ" = ( /obj/effect/turf_decal/box/white/corners{ - dir = 1 + dir = 8 }, /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate, @@ -546,10 +540,7 @@ /area/shuttle/caravan/freighter1) "EI" = ( /obj/effect/decal/cleanable/blood, -/mob/living/simple_animal/hostile/syndicate/melee/space/stormtrooper{ - environment_smash = 0; - name = "Syndicate Salvage Leader" - }, +/mob/living/simple_animal/hostile/syndicate/melee/sword/space/stormtrooper, /turf/open/floor/plasteel/darkblue/corner{ dir = 4; initial_gas_mix = "TEMP=2.7" @@ -567,10 +558,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/mob/living/simple_animal/hostile/syndicate/ranged/space{ - environment_smash = 0; - name = "Syndicate Salvage Worker" - }, +/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, /turf/open/floor/plasteel/yellow/corner{ dir = 4; initial_gas_mix = "TEMP=2.7" @@ -901,7 +889,6 @@ name = "Small Freighter"; port_direction = 8; preferred_direction = 4; - timid = 1; width = 21 }, /turf/open/floor/plating, @@ -942,7 +929,7 @@ /area/shuttle/caravan/freighter1) "WX" = ( /obj/effect/turf_decal/box/white/corners{ - dir = 8 + dir = 1 }, /obj/structure/closet/crate, /obj/item/stack/sheet/plasteel/twenty, @@ -1097,7 +1084,7 @@ ss CU ZZ hk -RI +Sn NY "} (8,1,1) = {" @@ -1108,7 +1095,7 @@ uA Fv sf VT -Sn +RI hk AX Xh @@ -1189,7 +1176,7 @@ El zy fD fD -fD +Jv "} (15,1,1) = {" El diff --git a/_maps/shuttles/ruin_pirate_cutter.dmm b/_maps/shuttles/ruin_pirate_cutter.dmm index a14bb0b49c..0cbb1ce860 100644 --- a/_maps/shuttles/ruin_pirate_cutter.dmm +++ b/_maps/shuttles/ruin_pirate_cutter.dmm @@ -707,7 +707,6 @@ name = "Pirate Cutter"; port_direction = 8; preferred_direction = 4; - timid = 1; width = 22 }, /turf/open/floor/plating, diff --git a/_maps/shuttles/ruin_syndicate_dropship.dmm b/_maps/shuttles/ruin_syndicate_dropship.dmm index df8fd53d34..a6cd24e6dc 100644 --- a/_maps/shuttles/ruin_syndicate_dropship.dmm +++ b/_maps/shuttles/ruin_syndicate_dropship.dmm @@ -69,7 +69,6 @@ name = "Syndicate Drop Ship"; port_direction = 8; preferred_direction = 4; - timid = 1; width = 15 }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, @@ -245,18 +244,6 @@ }, /turf/open/floor/plasteel/dark, /area/shuttle/caravan/syndicate3) -"zq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/syndicate{ - anchored = 1 - }, -/obj/item/clothing/shoes/jackboots, -/obj/item/crowbar/red, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/caravan/syndicate3) "BQ" = ( /turf/open/floor/plasteel/darkred/side, /area/shuttle/caravan/syndicate3) @@ -341,7 +328,7 @@ /obj/structure/chair/comfy/shuttle{ dir = 4 }, -/mob/living/simple_animal/hostile/syndicate/ranged/pilot{ +/mob/living/simple_animal/hostile/syndicate/ranged/smg/pilot{ environment_smash = 0 }, /turf/open/floor/plasteel/dark, @@ -523,6 +510,18 @@ "ZB" = ( /turf/closed/wall/mineral/plastitanium, /area/shuttle/caravan/syndicate3) +"ZI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/syndicate{ + anchored = 1 + }, +/obj/item/clothing/shoes/jackboots, +/obj/item/crowbar/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/caravan/syndicate3) "ZJ" = ( /turf/open/floor/plasteel/dark, /area/shuttle/caravan/syndicate3) @@ -630,7 +629,7 @@ Tn Lq YU Dx -zq +ZI HJ Tn "} diff --git a/_maps/shuttles/ruin_syndicate_fighter_shiv.dmm b/_maps/shuttles/ruin_syndicate_fighter_shiv.dmm index a9cf2a45b5..f4ea574398 100644 --- a/_maps/shuttles/ruin_syndicate_fighter_shiv.dmm +++ b/_maps/shuttles/ruin_syndicate_fighter_shiv.dmm @@ -18,7 +18,7 @@ /obj/structure/cable/yellow{ icon_state = "0-2" }, -/mob/living/simple_animal/hostile/syndicate/ranged/pilot{ +/mob/living/simple_animal/hostile/syndicate/ranged/smg/pilot{ environment_smash = 0 }, /turf/open/floor/mineral/plastitanium, @@ -98,7 +98,6 @@ name = "Syndicate Fighter"; port_direction = 2; preferred_direction = 4; - timid = 1; width = 9 }, /turf/open/floor/plating, diff --git a/_maps/shuttles/snowdin_excavation.dmm b/_maps/shuttles/snowdin_excavation.dmm index e0b53a78b1..7f7b120bbe 100644 --- a/_maps/shuttles/snowdin_excavation.dmm +++ b/_maps/shuttles/snowdin_excavation.dmm @@ -8,7 +8,6 @@ height = 6; id = "snowdin_excavation"; name = "excavation elevator"; - timid = 1; width = 6 }, /turf/open/floor/plating, diff --git a/_maps/shuttles/snowdin_mining.dmm b/_maps/shuttles/snowdin_mining.dmm index cd8d37d703..9e89edf3d9 100644 --- a/_maps/shuttles/snowdin_mining.dmm +++ b/_maps/shuttles/snowdin_mining.dmm @@ -9,7 +9,6 @@ height = 5; id = "snowdin_mining"; name = "mining elevator"; - timid = 1; width = 5 }, /turf/open/floor/plating, diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm index f7cd8ad529..0325f23b71 100644 --- a/_maps/shuttles/whiteship_box.dmm +++ b/_maps/shuttles/whiteship_box.dmm @@ -2,480 +2,2551 @@ "aa" = ( /turf/template_noop, /area/template_noop) -"ac" = ( +"ab" = ( /turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) +/area/shuttle/abandoned/crew) +"ac" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/crew) "ad" = ( -/obj/machinery/door/airlock/titanium, +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/crew) +"ae" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/docking_port/mobile{ callTime = 250; dheight = 0; dir = 2; dwidth = 11; - height = 22; + height = 17; id = "whiteship"; launch_status = 0; movement_force = list("KNOCKDOWN" = 0, "THROW" = 0); - name = "NT Medical Ship"; + name = "Hospital Ship"; port_direction = 8; preferred_direction = 4; - width = 35 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"af" = ( -/obj/machinery/door/airlock/titanium, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) + width = 34 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/crew) "ag" = ( -/obj/structure/shuttle/engine/propulsion/left{ - dir = 8 +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/medbay) +"ah" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_windows" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/medbay) +"ai" = ( +/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" + }, +/obj/machinery/light/small/built{ + dir = 1 + }, +/obj/structure/bed, +/obj/machinery/airalarm/all_access{ + pixel_y = 24 }, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) +/obj/item/bedsheet, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/crew) "aj" = ( -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/crew) "ak" = ( -/obj/structure/table, -/obj/item/radio/off, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_windows" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/crew) "al" = ( -/obj/structure/table, -/obj/item/screwdriver, -/obj/structure/light_construct{ - dir = 1 +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/medbay) +"am" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/obj/structure/closet/crate/freezer/surplus_limbs, +/obj/item/reagent_containers/glass/beaker/synthflesh, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) "an" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8 +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock{ + name = "Cabin 2" }, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/crew) "ao" = ( -/obj/structure/shuttle/engine/heater{ - dir = 8 +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/obj/structure/window/reinforced{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock{ + name = "Cabin 1" }, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/crew) "ap" = ( -/turf/closed/wall/mineral/titanium/interior, -/area/shuttle/abandoned) +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/crew) +"aq" = ( +/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" + }, +/obj/machinery/suit_storage_unit/cmo, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/crew) "ar" = ( -/obj/machinery/computer/pod{ - dir = 8; - id = "oldship_gun" +/obj/structure/shuttle/engine/propulsion{ + dir = 8 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/engine) +"as" = ( +/obj/structure/shuttle/engine/heater{ + dir = 8 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/engine) "at" = ( -/turf/open/floor/plating, -/area/shuttle/abandoned) +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/engine) +"au" = ( +/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" + }, +/obj/structure/table, +/obj/item/storage/box/gloves{ + pixel_x = 5; + pixel_y = 8 + }, +/obj/item/storage/box/masks{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/machinery/airalarm/all_access{ + pixel_y = 24 + }, +/obj/item/storage/backpack/duffelbag/med/surgery{ + pixel_y = 4 + }, +/obj/item/clothing/suit/apron/surgical, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/shuttle/abandoned/medbay) "av" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/hardsuit/medical, -/obj/item/clothing/mask/breath, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/shuttle/abandoned/medbay) "aw" = ( -/obj/machinery/door/airlock/public/glass, -/turf/open/floor/plating, -/area/shuttle/abandoned) +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/medical{ + name = "Surgery" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned/crew) "ax" = ( -/obj/machinery/mass_driver{ - dir = 4; - icon_state = "mass_driver"; - id = "oldship_gun" +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/plating, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/shuttle/abandoned/crew) "ay" = ( -/obj/machinery/door/poddoor{ - id = "oldship_gun"; - name = "pod bay door" +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/plating, -/area/shuttle/abandoned) +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/airalarm/all_access{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/shuttle/abandoned/crew) +"az" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/shuttle/abandoned/crew) +"aA" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/medical{ + name = "Crew Quarters" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned/crew) "aB" = ( -/obj/structure/shuttle/engine/propulsion/right{ +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ dir = 8 }, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) +/area/shuttle/abandoned/crew) +"aC" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/small/built{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/crew) "aD" = ( -/obj/machinery/door/airlock/titanium, -/turf/open/floor/plating, -/area/shuttle/abandoned) +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/crew) "aE" = ( -/obj/item/stock_parts/cell{ - charge = 100; - maxcharge = 15000 +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/closet/secure_closet/freezer{ + locked = 0; + name = "fridge" + }, +/obj/item/reagent_containers/glass/beaker/waterbottle{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle, +/obj/item/reagent_containers/glass/beaker/waterbottle{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/reagent_containers/food/snacks/chocolatebar, +/obj/item/reagent_containers/food/snacks/muffin/berry{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/snacks/muffin/berry, +/obj/item/reagent_containers/food/snacks/tofu, +/obj/item/reagent_containers/food/snacks/burrito, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Hospital Ship Crew Quarters APC"; + pixel_y = 24; + req_access = null + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/area/shuttle/abandoned/crew) +"aF" = ( +/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" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) "aG" = ( -/obj/structure/rack, -/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/storage/toolbox/mechanical, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/obj/structure/sign/departments/engineering, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/engine) "aH" = ( -/obj/structure/frame/computer{ - anchored = 1; +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/shuttle/abandoned/medbay) +"aI" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/white/corner{ dir = 1 }, -/obj/structure/light_construct, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/area/shuttle/abandoned/medbay) "aJ" = ( -/obj/structure/chair/comfy/shuttle{ +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/small/built{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/shuttle/abandoned/medbay) "aK" = ( -/obj/item/shard{ - icon_state = "medium" +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/secure_closet/personal, +/obj/item/clothing/accessory/medal/bronze_heart{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/accessory/medal/conduct, +/obj/item/clothing/accessory/medal/silver/valor{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/area/shuttle/abandoned/crew) "aL" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/abandoned) +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/wardrobe/white/medical, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/side, +/area/shuttle/abandoned/crew) +"aM" = ( +/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" + }, +/obj/structure/closet/secure_closet/personal, +/obj/item/storage/photo_album, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/shuttle/abandoned/crew) "aN" = ( -/obj/machinery/door/window, -/turf/open/floor/mineral/titanium/purple, -/area/shuttle/abandoned) +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/sign/warning/nosmoking{ + pixel_y = -30 + }, +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 + }, +/area/shuttle/abandoned/crew) "aO" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/mineral/titanium/purple, -/area/shuttle/abandoned) +/obj/structure/chair, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/shuttle/abandoned/crew) "aP" = ( -/obj/structure/table, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/crew) "aQ" = ( -/obj/structure/table, -/obj/item/gun/energy/laser/retro, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/shuttle/abandoned/crew) "aR" = ( -/obj/machinery/door/airlock/public/glass, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"aS" = ( -/obj/structure/chair/comfy/shuttle{ +/obj/structure/closet/crate{ + name = "food crate" + }, +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = -2 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = 5 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = 1; + pixel_y = -3 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = 8; + pixel_y = -3 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/box/donkpockets, +/obj/machinery/light/small/built{ dir = 4 }, -/obj/effect/decal/remains/human, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/neutral, +/area/shuttle/abandoned/crew) +"aS" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/engine) "aT" = ( -/obj/machinery/computer/shuttle/white_ship{ - dir = 8 +/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/mineral/titanium, -/area/shuttle/abandoned) +/obj/machinery/space_heater, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) "aU" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/bot, +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/obj/item/storage/bag/trash{ + pixel_x = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) "aV" = ( -/obj/structure/table, -/obj/item/tank/internals/oxygen, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/airalarm/all_access{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/light/small/built, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"aW" = ( +/obj/machinery/meter, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"aX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) "aY" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/structure/window/reinforced{ - dir = 1 +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/obj/structure/window/reinforced{ - dir = 8 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 }, -/turf/open/floor/mineral/titanium/purple, -/area/shuttle/abandoned) +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/shuttle/abandoned/medbay) "aZ" = ( -/obj/machinery/door/window/northright, -/obj/effect/decal/remains/human, -/turf/open/floor/mineral/titanium/purple, -/area/shuttle/abandoned) +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/computer/operating{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) "ba" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/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" + }, +/obj/structure/table/optable, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) "bb" = ( -/obj/structure/frame/computer{ - anchored = 1; - dir = 8 +/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/mineral/titanium, -/area/shuttle/abandoned) -"bc" = ( -/obj/item/multitool, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bd" = ( -/obj/structure/chair/comfy/shuttle, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bf" = ( -/obj/item/scalpel, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bg" = ( /obj/structure/table, -/obj/item/storage/firstaid/regular{ +/obj/item/trash/plate{ + pixel_x = 6 + }, +/obj/item/kitchen/fork{ pixel_x = 6; - pixel_y = -5 + pixel_y = 3 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bh" = ( -/obj/machinery/sleeper{ - dir = 8 +/obj/item/reagent_containers/food/drinks/soda_cans/cola{ + pixel_x = -6; + pixel_y = 4 }, -/obj/effect/decal/remains/human, -/obj/structure/light_construct, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bi" = ( -/obj/structure/light_construct/small, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"bj" = ( -/obj/structure/frame/computer{ - anchored = 1 +/turf/open/floor/plasteel/neutral/side{ + dir = 10 }, -/obj/machinery/light{ - dir = 1 +/area/shuttle/abandoned/crew) +"bc" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bk" = ( -/obj/structure/light_construct, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bl" = ( -/obj/structure/light_construct{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bm" = ( -/obj/structure/light_construct{ - dir = 4 +/turf/open/floor/plasteel/neutral/side, +/area/shuttle/abandoned/crew) +"bd" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bn" = ( -/obj/structure/light_construct/small{ - dir = 4 +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bo" = ( -/obj/structure/light_construct{ - dir = 8 +/obj/structure/closet/crate/bin, +/obj/item/trash/pistachios, +/obj/machinery/airalarm/all_access{ + dir = 1; + pixel_y = -24 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bq" = ( -/obj/structure/light_construct/small{ - dir = 8 +/obj/item/trash/can, +/obj/item/light/bulb/broken, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bt" = ( -/obj/structure/light_construct/small{ +/area/shuttle/abandoned/crew) +"be" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/bridge) +"bf" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_bridge" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/bridge) +"bg" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bh" = ( +/obj/machinery/light/small/built{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bi" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bj" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bk" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bl" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bm" = ( +/obj/machinery/door/airlock/external, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bn" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bo" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bp" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/airalarm/all_access{ + pixel_y = 24 + }, +/obj/machinery/light/small/built{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bq" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/components/unary/tank/air{ dir = 1 }, +/obj/effect/turf_decal/bot, /turf/open/floor/plating, -/area/shuttle/abandoned) +/area/shuttle/abandoned/engine) +"br" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/medical{ + name = "Surgery" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned/medbay) +"bs" = ( +/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" + }, +/obj/machinery/atmospherics/components/unary/cryo_cell, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) +"bt" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/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 = -6; + pixel_y = 6 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/airalarm/all_access{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) "bu" = ( -/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship{ - view_range = 18 +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -af -ac -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ac -ap -aj -ap -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ac -aj -aj -aj -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(4,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ac -aj -aj -aj -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(5,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ac -aj -aj -aj -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(6,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ac -aj -aj -bk -ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(7,1,1) = {" -aa -aa -aa -aa +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/components/unary/cryo_cell, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) +"bw" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/medical{ + name = "Break Room" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/crew) +"bx" = ( +/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" + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4 + }, +/obj/item/folder/blue{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/folder/white, +/obj/item/pen{ + pixel_x = 4 + }, +/turf/open/floor/plasteel/blue/side, +/area/shuttle/abandoned/bridge) +"by" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bz" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/shuttle/abandoned/medbay) +"bA" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/small/built{ + dir = 4 + }, +/obj/structure/closet/secure_closet/medical2{ + anchored = 1 + }, +/obj/machinery/airalarm/all_access{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/shuttle/abandoned/medbay) +"bB" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/sleeper, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small/built{ + dir = 8 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) +"bC" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) +"bD" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) +"bE" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) +"bF" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/small/built{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/shuttle/abandoned/medbay) +"bG" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/firecloset{ + anchored = 1 + }, +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/shuttle/abandoned/medbay) +"bH" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/blue/corner, +/area/shuttle/abandoned/medbay) +"bI" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table/reinforced, +/obj/item/wrench, +/obj/item/crowbar, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Hospital Ship Medbay APC"; + pixel_y = 24; + req_access = null + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned/medbay) +"bJ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/shuttle/abandoned/bridge) +"bK" = ( +/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" + }, +/obj/machinery/computer/crew{ + dir = 8 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/shuttle/abandoned/bridge) +"bM" = ( +/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" + }, +/obj/machinery/computer/med_data{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned/medbay) +"bN" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) +"bO" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/shuttle/abandoned/medbay) +"bP" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Cryo Room" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned/medbay) +"bQ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) +"bR" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) +"bS" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) +"bT" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) +"bU" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/shuttle/abandoned/medbay) +"bV" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Cryo Room" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned/medbay) +"bW" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/shuttle/abandoned/medbay) +"bX" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/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/blue/side{ + dir = 4 + }, +/area/shuttle/abandoned/medbay) +"bY" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/command{ + name = "Bridge" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/bridge) +"bZ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/bridge) +"ca" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/bridge) +"cb" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/computer/shuttle/white_ship{ + dir = 8 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/shuttle/abandoned/bridge) +"cc" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cd" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/white/side, +/area/shuttle/abandoned/medbay) +"ce" = ( +/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" + }, +/obj/machinery/light/small/built{ + dir = 4 + }, +/obj/structure/closet/secure_closet/medical3{ + anchored = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/shuttle/abandoned/medbay) +"cf" = ( +/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" + }, +/obj/machinery/sleeper{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) +"cg" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) +"ch" = ( +/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" + }, +/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/white/side, +/area/shuttle/abandoned/medbay) +"ci" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/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/white/side, +/area/shuttle/abandoned/medbay) +"cj" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/obj/machinery/light/small/built{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/shuttle/abandoned/medbay) +"ck" = ( +/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" + }, +/obj/structure/closet/emcloset/anchored, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/shuttle/abandoned/medbay) +"cl" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/small/built{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/shuttle/abandoned/medbay) +"cm" = ( +/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" + }, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency, +/obj/item/wrench, +/obj/machinery/light/small/built{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/obj/machinery/button/door{ + id = "whiteship_windows"; + name = "Windows Blast Door Control"; + pixel_x = -5; + pixel_y = -24 + }, +/obj/machinery/button/door{ + id = "whiteship_bridge"; + name = "Bridge Blast Door Control"; + pixel_x = 5; + pixel_y = -24 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/shuttle/abandoned/bridge) +"cn" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner, +/area/shuttle/abandoned/bridge) +"co" = ( +/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" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship{ + dir = 8; + x_offset = -7; + y_offset = -8 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/shuttle/abandoned/bridge) +"cp" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cq" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cr" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cs" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"ct" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + name = "Hospital Ship Engineering APC"; + pixel_y = -24; + req_access = null + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cu" = ( +/obj/machinery/power/smes/engineering{ + charge = 1e+006 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/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" + }, +/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" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cv" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/medical{ + name = "Recovery Room" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned/medbay) +"cw" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/medical{ + name = "Medical Storage" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) +"cx" = ( +/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" + }, +/obj/structure/table, +/obj/item/radio/off{ + pixel_x = 6; + pixel_y = 14 + }, +/obj/item/gps{ + gpstag = "NTREC1"; + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/megaphone{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/shuttle/abandoned/bridge) +"cy" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable, +/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" + }, +/obj/effect/turf_decal/bot, +/obj/item/wrench, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cz" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/bot, +/obj/item/weldingtool/largetank, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cB" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cC" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cD" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/shuttle/abandoned/medbay) +"cE" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet{ + name = "patient's wardrobe" + }, +/obj/item/clothing/under/color/white, +/obj/item/clothing/under/color/white, +/obj/item/clothing/under/color/white, +/obj/item/clothing/shoes/sneakers/white, +/obj/item/clothing/shoes/sneakers/white, +/obj/item/clothing/shoes/sneakers/white, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/shuttle/abandoned/medbay) +"cF" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/machinery/light/small/built{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/shuttle/abandoned/medbay) +"cG" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/folder/white{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/paper{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/pen{ + pixel_x = 4 + }, +/obj/machinery/airalarm/all_access{ + pixel_y = 24 + }, +/obj/item/flashlight/pen{ + pixel_x = -6; + pixel_y = -2 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/shuttle/abandoned/medbay) +"cH" = ( +/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" + }, +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/shuttle/abandoned/medbay) +"cI" = ( +/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" + }, +/obj/structure/toilet{ + pixel_y = 16 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/abandoned/medbay) +"cJ" = ( +/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" + }, +/obj/machinery/shower{ + pixel_y = 15 + }, +/obj/item/soap, +/obj/structure/curtain, +/obj/machinery/light/small/built, +/turf/open/floor/plasteel/freezer, +/area/shuttle/abandoned/medbay) +"cK" = ( +/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" + }, +/obj/structure/table, +/obj/item/storage/firstaid/brute{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/toxin{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/door/window/eastleft{ + name = "First-Aid Supplies" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned/medbay) +"cL" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/vending/medical{ + req_access = null + }, +/obj/machinery/airalarm/all_access{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned/medbay) +"cM" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 4 + }, +/obj/item/flashlight{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/turf_decal/bot, +/obj/item/storage/box/lights/bulbs, +/obj/item/stack/sheet/mineral/plasma{ + amount = 10 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cN" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/shuttle/abandoned/medbay) +"cO" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/shuttle/abandoned/medbay) +"cP" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) +"cQ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) +"cR" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) +"cS" = ( +/obj/structure/sign/departments/restroom, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/medbay) +"cT" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock{ + name = "Restroom" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/abandoned/medbay) +"cU" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/structure/window/reinforced, +/obj/machinery/door/window/eastright{ + name = "First-Aid Supplies" + }, +/obj/item/storage/box/beakers{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/storage/box/syringes{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 7; + pixel_y = -3 + }, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = -2; + pixel_y = -3 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = 6; + pixel_y = -3 + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned/medbay) +"cV" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) +"cW" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/shuttle/abandoned/medbay) +"cX" = ( +/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" + }, +/obj/machinery/light/small/built{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/door/window/westleft{ + name = "Medical Equipment Storage" + }, +/obj/item/clothing/neck/stethoscope{ + pixel_y = 4 + }, +/obj/item/storage/belt/medical{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/clothing/glasses/hud/health{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/clothing/glasses/hud/health{ + pixel_x = 3 + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned/medbay) +"cY" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/medbay) +"cZ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/crate/freezer/blood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/shuttle/abandoned/medbay) +"da" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/shuttle/abandoned/medbay) +"db" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) +"dc" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) +"dd" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) +"de" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/shuttle/abandoned/medbay) +"df" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/medical{ + name = "Recovery Room" + }, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) +"dg" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) +"dh" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/small, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) +"di" = ( +/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" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) +"dj" = ( +/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" + }, +/obj/structure/closet/l3closet{ + anchored = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/shuttle/abandoned/medbay) +"dk" = ( +/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" + }, +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/shuttle/abandoned/medbay) +"dl" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/machinery/light/small, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/item/folder/white{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = 6; + pixel_y = -1 + }, +/turf/open/floor/plasteel/white/side, +/area/shuttle/abandoned/medbay) +"dm" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/shuttle/abandoned/medbay) +"dn" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/small/built{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/shuttle/abandoned/medbay) +"do" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/medbay) +"dp" = ( +/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" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/suit_storage_unit/cmo, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) +"dq" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/folder/white, +/obj/item/pen{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/reagent_containers/food/snacks/grown/harebell{ + pixel_x = 6; + pixel_y = 3 + }, +/turf/open/floor/plasteel/white/side, +/area/shuttle/abandoned/medbay) +"dr" = ( +/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" + }, +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/shuttle/abandoned/medbay) +"ds" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/small/built{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/medbay) +"dt" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/medbay) +"dv" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/rack, +/obj/item/storage/box/zipties, +/obj/item/assembly/flash/handheld, +/obj/item/melee/classic_baton/telescopic, +/obj/machinery/light/small/built{ + dir = 8 + }, +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Hospital Ship Bridge APC"; + pixel_y = 24; + req_access = null + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/shuttle/abandoned/bridge) +"hV" = ( +/obj/structure/shuttle/engine/propulsion/right{ + dir = 8 + }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/engine) +"vk" = ( +/obj/structure/shuttle/engine/propulsion/left{ + dir = 8 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/engine) +"JU" = ( +/obj/structure/shuttle/engine/propulsion/right{ + dir = 8 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/engine) +"Tw" = ( +/obj/structure/shuttle/engine/propulsion/left{ + dir = 8 + }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/engine) + +(1,1,1) = {" aa aa aa aa -ac -aj -aj -aj -ac aa aa +vk +hV aa +Tw +JU aa aa aa @@ -483,672 +2554,551 @@ aa aa aa "} -(8,1,1) = {" -aa -aa -aa -aa -aa -aa +(2,1,1) = {" aa aa -ac -aj -aj -aj -ac aa aa aa +aS +as +as aa +as +as +aS aa aa aa aa aa "} -(9,1,1) = {" -aa -aa -aa -aa -aa -aa +(3,1,1) = {" aa aa -ac -aj -aj -aU -ac aa aa aa +at +bg +at aa +at +bg +at aa aa aa aa aa "} -(10,1,1) = {" -aa -aa -aa -aa -aa -aa +(4,1,1) = {" aa aa -ac -ap -aj -ap -ac aa aa aa +at +bh +by aa +cc +cp +at aa aa aa aa aa "} -(11,1,1) = {" -aa -aa -aa -aa -aa -aa +(5,1,1) = {" aa aa -ac -ac -af -ac -ac aa aa aa +at +bi +at aa +at +cq +at aa aa aa aa aa "} -(12,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa +(6,1,1) = {" aa -ac -aj -ac aa aa aa aa +at +bj +at aa +at +bj +at aa aa aa aa aa "} -(13,1,1) = {" -aa -aa -aa -aa -aa -aa +(7,1,1) = {" aa aa -ac -ac -af -ac -ac aa aa aa +at +bk +at aa +at +bk +at aa aa aa aa aa "} -(14,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ac -ac -ap -aj -ap -ac -ac +(8,1,1) = {" aa aa aa aa aa +at +bl +at aa +at +bl +at aa aa -"} -(15,1,1) = {" -ac -ag -an -an -an -aB aa -ac -ap -aj -aj -aj -ap -ac aa -ag -an -an -an -aB -ac aa "} -(16,1,1) = {" -ac -ac -ao -ao -ao -ac -ac -ac -bl -aj -aj -aj -bk -ac -ac -ac -ao -ao -ao -ac -ac +(9,1,1) = {" aa -"} -(17,1,1) = {" aa -ac -ap +aa +aa +ar at +bm at -ap -ac -ap -aj -aj -aj -aj -aj -ap -ac -ap +aa at +bm at -ap -ac +ar +aa +aa aa aa "} -(18,1,1) = {" +(10,1,1) = {" aa aa -ac -ap +aa +aa +as +aT +bn at -bi -ac -aj -aj -aj -aj -aj -aj -ba -ac -bt +aa at -ap -ac +cr +cy +as +aa aa aa aa "} -(19,1,1) = {" +(11,1,1) = {" aa aa aa -ac -ac -aD -ac -ac -ac -aL -aR -aL -ac -ac -ac -aD -ac -ac +aa +at +aU +bo +at +aa +at +cs +cz +at aa aa aa aa "} -(20,1,1) = {" +(12,1,1) = {" aa aa aa -ac -ac -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -ac -ac +ar +at +bl +aV +at aa +at +bp +ct +at +ar aa aa aa "} -(21,1,1) = {" +(13,1,1) = {" aa aa -ac -ac -ap -aE -aj -aj -aj -aj -bm -aj -aj -aj -aj -aj -ac -ac -ac +aa +as +aF +aW +bq +at +ah +at +cu +cB +cM +as aa aa aa "} -(22,1,1) = {" +(14,1,1) = {" aa -ac -ac -ap -aj -aj -aj -aj -ac -ac -ac -ac -ac -ac -aj -aj -ac -ac -ac -ac aa aa -"} -(23,1,1) = {" -ac -ac -ac -ac -ac -ac -ap -aj -ac -aN -aj -bq -aj -af -aj -aj -af -aj -ap -ac +at +aG +aX +at +at +bM +at +at +cC +aG +at +aa aa aa "} -(24,1,1) = {" -ad -aj -aj -av -av -ap -ac -bk -ac -aO -aj -aV +(15,1,1) = {" +aa +aa +ag +al +aH aY -ac -bl -aj -ac -aj -bg -ac -ac +br +bz +bN +cd +cv +cD +cN +al +ag aa -"} -(25,1,1) = {" -ac -aj -aj -aj -aj -aG -ac -aj -af -aj -bn -aj -aZ -ac -aj -aj -ac -aj -aj -ap -ac aa "} -(26,1,1) = {" -ac -ak -aj -aj -aj -aj -ac -aj -ac -ac -ac -ac -ac -ac -aj -aE -aL -bf -aj -aj -ac +(16,1,1) = {" +aa +ag +al +au +aI +aZ +al +bA +bO +ce +al +cE +cO +cZ +al +ag aa "} -(27,1,1) = {" -ac +(17,1,1) = {" +aa +ah +am +av +aJ +ba al -aj -aj -aj -aj -af -aj -aj -aj -bo -aj -aj -aj -aj -aj -aL -aj -aj -bh -ac +al +bP +al +al +cF +cP +da +dk +ah aa "} -(28,1,1) = {" +(18,1,1) = {" +ab ac -aj -aj -aj -aj -aj ac -ap -aj -aj -aj -aj -aj -aj -aj -bc -aL -aj -aj -aj +aw ac -aa +al +al +bB +bQ +cf +al +cG +cQ +db +dl +al +ag "} -(29,1,1) = {" +(19,1,1) = {" ac -aj -aj -aj -aj -ap +ai +an +ax +aK +al +bs +bC +bR +cg +al +cH +cR +dc +dm +dk +al +"} +(20,1,1) = {" ac ac ac +ay aL -aR -aL -ac -ac -ac -ac -ac -aj -aj -aj +al +bt +bD +bS +ch +al +al +cS +dd +cR +dq +al +"} +(21,1,1) = {" ac -aa +ai +ao +az +aM +al +bu +bE +bT +ci +al +cI +cT +de +dn +dr +al "} -(30,1,1) = {" +(22,1,1) = {" +ad ac -aj -aj -aj -ap ac -ap -aj -aj -aj -aj -aj -aj -aP -aP -aP +aA ac -aj +al +bI +bF +bU +cj +al +cJ +al +df +al +al +cY +"} +(23,1,1) = {" +ae aj ap -ac -aa +aB +aN +al +al +al +bV +al +al +al +al +dg +do +ds +dt "} -(31,1,1) = {" -af -aj -ar -aj +(24,1,1) = {" +ab ac -ap -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -ap -ap +ac +aC +aO bb ac +bG +bW +ck +al +cK +cU +dh +al +al +ag +"} +(25,1,1) = {" aa +ak +aq +aD +aP +bc +bw +bH +bX +cl +cw +bz +cV +di +dp +ah aa "} -(32,1,1) = {" -ac -ac -ac -aw +(26,1,1) = {" +aa +ab ac -bj -aJ -aj -aj -aj -aj -aj -aj -aj -aj +aE +aQ bd -aH -ac -ac +be +be +bY +be +be +cL +cW +dj +al +ag +aa +"} +(27,1,1) = {" +aa +aa +ab ac +aR +be +be +dv +bZ +cm +be +be +cX +al +ag aa aa "} -(33,1,1) = {" +(28,1,1) = {" aa aa -ac -ax -ac -bu -aJ -aj -aj -aP -aS -aP -aj -aj -aj -aj -ap -ac -ac +aa +ab +ad +be +bx +bJ +ca +cn +cx +be +cY +ag aa aa aa "} -(34,1,1) = {" +(29,1,1) = {" aa aa -ac -ay -ac -ap -aK -aj -aj -aQ -aT -aP -aj -aj -aj -ap -ac -ac +aa +aa +aa +bf +bf +bK +cb +co +bf +bf +aa aa aa aa aa "} -(35,1,1) = {" +(30,1,1) = {" aa aa aa aa -ac -ac -ac -aL -aL -aL -aL -aL -aL -aL -ac -ac -ac +aa +aa +bf +bf +bf +bf +bf +aa aa aa aa diff --git a/_maps/shuttles/whiteship_cere.dmm b/_maps/shuttles/whiteship_cere.dmm index f640e014a9..fda62dfeb3 100644 --- a/_maps/shuttles/whiteship_cere.dmm +++ b/_maps/shuttles/whiteship_cere.dmm @@ -120,11 +120,7 @@ /turf/open/floor/mineral/titanium, /area/shuttle/abandoned) "an" = ( -/obj/effect/spawner/lootdrop{ - loot = list(/obj/mecha/working/ripley/mining = 1, /obj/structure/mecha_wreckage/ripley = 5); - lootdoubles = 0; - name = "25% mech 75% wreckage ripley spawner" - }, +/obj/effect/spawner/lootdrop/whiteship_cere_ripley, /turf/open/floor/mech_bay_recharge_floor, /area/shuttle/abandoned) "ao" = ( diff --git a/_maps/shuttles/whiteship_delta.dmm b/_maps/shuttles/whiteship_delta.dmm index bb17806a6b..e3f64b01d8 100644 --- a/_maps/shuttles/whiteship_delta.dmm +++ b/_maps/shuttles/whiteship_delta.dmm @@ -3,2805 +3,3351 @@ /turf/template_noop, /area/template_noop) "ab" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 1 +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) +/obj/structure/chair/stool/bar, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "ac" = ( /turf/closed/wall/mineral/titanium/nodiagonal, -/area/shuttle/abandoned) +/area/shuttle/abandoned/crew) "ad" = ( +/obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/titanium{ - name = "External Airlock" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/docking_port/mobile{ + callTime = 250; + dheight = 0; + dir = 2; + dwidth = 11; + height = 17; + id = "whiteship"; + launch_status = 0; + movement_force = list("KNOCKDOWN" = 0, "THROW" = 0); + name = "NT Frigate"; + port_direction = 8; + preferred_direction = 4; + width = 27 }, -/obj/effect/decal/cleanable/blood/tracks, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) +/turf/open/floor/plating, +/area/shuttle/abandoned/crew) "ae" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/bar) "af" = ( -/obj/structure/shuttle/engine/heater{ - dir = 1 +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_windows" }, -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) +/turf/open/floor/plating, +/area/shuttle/abandoned/bar) "ag" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 +/obj/machinery/porta_turret/centcom_shuttle/weak{ + dir = 4 }, -/obj/effect/decal/cleanable/blood/tracks, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/bar) "ah" = ( -/obj/structure/sign/warning/vacuum, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/shuttle/abandoned) +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/engine) "ai" = ( -/obj/structure/window/reinforced, -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/engine) "aj" = ( -/obj/structure/closet/firecloset/full, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 +/obj/machinery/shower{ + pixel_y = 15 }, +/obj/item/soap, +/obj/structure/curtain, +/obj/machinery/light/small/built, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plating, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/freezer, +/area/shuttle/abandoned/crew) "ak" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 +/obj/structure/toilet{ + pixel_y = 16 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 }, -/obj/structure/reagent_dispensers/watertank/high, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"al" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plasteel/greenblue/side{ +/turf/open/floor/plasteel/freezer, +/area/shuttle/abandoned/crew) +"al" = ( +/obj/machinery/light/small/built{ dir = 1 }, -/area/shuttle/abandoned) -"am" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/circuitboard/machine/hydroponics, -/turf/open/floor/plasteel/greenblue/side{ - dir = 5 +/obj/structure/bed, +/obj/item/bedsheet/centcom, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/airalarm/all_access{ + dir = 8; + pixel_x = 24 }, -/area/shuttle/abandoned) -"an" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/turf/open/floor/wood, +/area/shuttle/abandoned/crew) +"am" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/bed, +/obj/item/bedsheet/centcom, +/obj/machinery/light/small{ dir = 1 }, -/obj/machinery/door/airlock/titanium{ - glass = 1; - name = "Internal Airlock" +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/airalarm/all_access{ + dir = 8; + pixel_x = 24 }, +/turf/open/floor/wood, +/area/shuttle/abandoned/crew) +"an" = ( +/obj/structure/closet/emcloset/anchored, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/blood/tracks, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) +/turf/open/floor/plating, +/area/shuttle/abandoned/crew) "ao" = ( -/obj/structure/closet/secure_closet/freezer/kitchen/mining, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/obj/machinery/light/small/built{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/crew) +"ap" = ( +/obj/machinery/vending/boozeomat/all_access, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/flour, -/turf/open/floor/plasteel/greenblue/side{ - dir = 9 - }, -/area/shuttle/abandoned) -"ap" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/greenblue/side{ - dir = 1 +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel, +/area/shuttle/abandoned/bar) "aq" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/reagent_dispensers/fueltank, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"ar" = ( -/obj/structure/closet/emcloset, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 +/obj/structure/table, +/obj/item/toy/cards/deck{ + pixel_x = 4; + pixel_y = 12 }, -/obj/effect/decal/cleanable/oil, +/obj/item/toy/cards/cardhand{ + currenthand = list("2 of Diamonds","3 of Clubs"); + pixel_x = -5 + }, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = 7; + pixel_y = 4 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) +"ar" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plating, -/area/shuttle/abandoned) +/obj/structure/chair/stool/bar, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "as" = ( -/obj/structure/closet/crate{ - name = "emergency supplies crate" - }, -/obj/item/storage/toolbox/emergency, -/obj/item/storage/toolbox/emergency, -/obj/item/flashlight/flare{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/flashlight/flare{ - pixel_x = -6; - pixel_y = -2 - }, -/obj/item/crowbar, -/obj/item/wrench, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/extinguisher, -/obj/item/extinguisher, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/light_construct/small{ - dir = 8 +/obj/machinery/firealarm{ + pixel_y = 24 }, -/turf/open/floor/plating, -/area/shuttle/abandoned) +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "at" = ( -/obj/effect/decal/cleanable/oil, +/obj/machinery/light/small/built{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/storage/box/hug/medical, -/turf/open/floor/plating, -/area/shuttle/abandoned) +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Frigate Bar APC"; + pixel_x = -24; + req_access = null + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "au" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/door/airlock/maintenance/glass{ - name = "Maintenance" - }, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bar) "av" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) +/obj/effect/turf_decal/bot_white, +/obj/structure/closet/crate, +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle/large, +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle, +/obj/item/reagent_containers/glass/beaker/waterbottle{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bar) "aw" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/green/corner{ - dir = 4 - }, -/area/shuttle/abandoned) -"ax" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/blue/corner{ - dir = 1 +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/bot_white, +/obj/structure/closet/crate, +/obj/item/reagent_containers/food/snacks/candy{ + pixel_x = -3; + pixel_y = 1 }, -/area/shuttle/abandoned) -"ay" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/item/reagent_containers/food/snacks/candy, +/obj/item/reagent_containers/food/snacks/candy{ + pixel_x = 3; + pixel_y = -1 }, -/obj/effect/decal/cleanable/blood/tracks, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"az" = ( -/obj/structure/sink/kitchen{ - pixel_y = 30 +/obj/item/reagent_containers/food/snacks/cookie{ + pixel_x = -2; + pixel_y = -2 }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/item/reagent_containers/food/snacks/cookie{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/item/reagent_containers/food/snacks/chocolatebar, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bar) +"ax" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/bar) +"ay" = ( +/obj/structure/shuttle/engine/propulsion/left{ + dir = 8 }, -/turf/open/floor/plasteel/green/corner{ +/turf/open/floor/plating/airless, +/area/shuttle/abandoned/engine) +"az" = ( +/obj/structure/window/reinforced{ dir = 4 }, -/area/shuttle/abandoned) +/obj/structure/shuttle/engine/heater{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned/engine) "aA" = ( -/obj/machinery/door/airlock/maintenance/glass{ - name = "Maintenance" +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"aB" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"aC" = ( -/obj/structure/closet/crate{ - name = "spare equipment crate" - }, -/obj/item/grenade/chem_grenade/metalfoam, -/obj/item/relic, -/obj/item/t_scanner, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" +/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/plating, +/area/shuttle/abandoned/engine) +"aB" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/light_construct/small{ - dir = 4 - }, -/obj/item/storage/box/lights/mixed, +/obj/structure/reagent_dispensers/fueltank, +/obj/item/weldingtool/largetank, /turf/open/floor/plating, -/area/shuttle/abandoned) +/area/shuttle/abandoned/engine) +"aC" = ( +/obj/structure/sign/departments/restroom, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/crew) "aD" = ( -/obj/machinery/vending/hydroseeds, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/greenblue/side, -/area/shuttle/abandoned) +/obj/machinery/door/airlock{ + name = "Restroom" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/abandoned/crew) "aE" = ( -/obj/structure/closet/crate/hydroponics, -/obj/item/stack/sheet/metal/fifty, -/obj/item/circuitboard/machine/hydroponics, -/obj/item/circuitboard/machine/gibber, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/green/corner{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock{ + name = "Cabin 2" }, -/area/shuttle/abandoned) +/turf/open/floor/wood, +/area/shuttle/abandoned/crew) "aF" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/stack/cable_coil/random, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock{ + name = "Cabin 1" + }, +/turf/open/floor/wood, +/area/shuttle/abandoned/crew) "aG" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/blue/corner, -/area/shuttle/abandoned) +/turf/open/floor/plating, +/area/shuttle/abandoned/crew) "aH" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/greenblue/side, -/area/shuttle/abandoned) +/obj/structure/chair/stool/bar, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "aI" = ( -/obj/structure/closet/wardrobe, -/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/medsci/next, -/obj/item/clothing/under/trek/medsci/next, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/spawner/lootdrop/costume, -/obj/item/clothing/under/rank/centcom_commander{ - desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; - name = "\improper dusty old CentCom jumpsuit" - }, -/obj/item/clothing/under/rank/centcom_officer{ - desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; - name = "\improper dusty old CentCom jumpsuit" - }, -/obj/item/clothing/under/rank/centcom_officer{ - desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; - name = "\improper dusty old CentCom jumpsuit" - }, -/obj/item/clothing/head/centhat{ - desc = "There's a gouge through the top where something has clawed clean through it. Whoever was wearing it probably doesn't need a hat any more."; - name = "\improper damaged CentCom hat" +/obj/effect/decal/remains/human{ + desc = "They look like human remains, and have clearly been gnawed at." }, -/turf/open/floor/plasteel/barber, -/area/shuttle/abandoned) +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "aJ" = ( -/obj/structure/reagent_dispensers/beerkeg, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/barber, -/area/shuttle/abandoned) -"aK" = ( -/obj/item/storage/bag/plants/portaseeder, -/obj/structure/table, -/obj/item/reagent_containers/spray/plantbgone{ - pixel_x = 13; - pixel_y = 5 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/reagent_containers/glass/bottle/nutrient/ez, -/obj/item/reagent_containers/glass/bottle/nutrient/ez, -/obj/item/reagent_containers/glass/bottle/nutrient/ez, -/obj/item/reagent_containers/glass/bottle/nutrient/rh{ - pixel_x = -2; - pixel_y = 3 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, +/obj/machinery/door/airlock/external/glass{ + name = "E.V.A Access" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/crew) +"aK" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/greenblue/side{ - dir = 8 - }, -/area/shuttle/abandoned) +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "aL" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/machinery/light/small/built{ + dir = 4 }, -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"aM" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/greenblue/side{ - dir = 4 +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 }, -/area/shuttle/abandoned) -"aN" = ( -/obj/item/soap, -/obj/structure/curtain, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bar) +"aM" = ( +/obj/structure/shuttle/engine/propulsion/right{ + dir = 8 }, -/obj/machinery/shower{ - pixel_y = 15 +/turf/open/floor/plating/airless, +/area/shuttle/abandoned/engine) +"aN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/turf/open/floor/plasteel/freezer, -/area/shuttle/abandoned) -"aO" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/barber, -/area/shuttle/abandoned) -"aP" = ( -/obj/structure/table, -/obj/item/storage/pill_bottle/dice, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/plasteel/barber, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) "aQ" = ( -/obj/structure/table, -/obj/item/wrench, -/obj/item/crowbar, -/obj/item/clothing/suit/apron, -/obj/item/shovel/spade, -/obj/item/cultivator, -/obj/item/plant_analyzer, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/wirecutters, -/turf/open/floor/plasteel/blue/corner{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/shuttle/abandoned/crew) "aR" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/storage/box/donkpockets, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/shuttle/abandoned/crew) "aS" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/light_construct{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/plasteel/green/corner{ +/turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/area/shuttle/abandoned) +/area/shuttle/abandoned/crew) "aT" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/light_construct/small{ - dir = 1 +/obj/machinery/light/small, +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/decal/cleanable/cobweb, -/obj/structure/toilet{ - dir = 8 +/obj/machinery/airalarm/all_access{ + pixel_y = 24 }, -/turf/open/floor/plasteel/freezer, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/shuttle/abandoned/crew) "aU" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/light_construct/small{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Frigate Crew Quarters APC"; + pixel_y = 24; + req_access = null + }, +/turf/open/floor/plasteel/neutral/corner{ dir = 4 }, -/turf/open/floor/plasteel/freezer, -/area/shuttle/abandoned) +/area/shuttle/abandoned/crew) "aV" = ( +/obj/machinery/light/small/built, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/mopbucket, -/turf/open/floor/plasteel/greenblue/side{ - dir = 9 +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 }, -/area/shuttle/abandoned) +/area/shuttle/abandoned/crew) "aW" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/area/shuttle/abandoned) +/obj/machinery/door/airlock/external/glass{ + name = "E.V.A Access" + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/bar) "aX" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/machinery/light/small/built{ + dir = 1 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark{ + dir = 8 + }, +/area/shuttle/abandoned/crew) "aY" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/neutral/corner, -/area/shuttle/abandoned) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/crew) "aZ" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/machinery/light/small/built{ + dir = 1 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/door/airlock{ - name = "Laborotary" +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/crew) "ba" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/light_construct{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/greenblue/side{ - dir = 10 +/obj/structure/cable{ + icon_state = "1-8" }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "bb" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/toy/cards/deck, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "bc" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/old, +/mob/living/simple_animal/hostile/poison/giant_spider/hunter{ + desc = "Furry and black, it makes you shudder to look at it. This one has sparkling purple eyes, and looks abnormally thin and frail."; + environment_smash = 0; + health = 60; + maxHealth = 60; + melee_damage_lower = 5; + melee_damage_upper = 10; + name = "scrawny spider" + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "bd" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/door/airlock/glass{ - name = "Dormitory" +/obj/machinery/light/small{ + dir = 8 }, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) +/obj/structure/chair, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "be" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/neutral/side{ - dir = 8; - heat_capacity = 1e+006 - }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "bf" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/structure/chair/comfy/shuttle{ + dir = 4 }, -/obj/item/gun/energy/floragun, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"bg" = ( +/obj/effect/turf_decal/bot_white, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/neutral/side{ +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/bar) +"bg" = ( +/obj/structure/window/reinforced{ dir = 4 }, -/area/shuttle/abandoned) +/obj/structure/frame/computer{ + anchored = 1; + dir = 8 + }, +/obj/item/shard, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/bar) "bh" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/girder/displaced, +/obj/item/stack/sheet/mineral/titanium, +/obj/item/stack/rods, +/obj/item/stack/cable_coil/cut/red, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned/bar) +"bi" = ( +/obj/structure/grille, +/obj/item/stack/rods, +/obj/item/shard, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned/bar) +"bj" = ( +/obj/structure/girder, +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned/bar) +"bk" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/light_construct{ - dir = 1 +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bl" = ( +/obj/machinery/light/small/built{ + dir = 4 }, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) -"bi" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/bed, -/turf/open/floor/plasteel/greenblue/side{ - dir = 10 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, -/area/shuttle/abandoned) -"bj" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bm" = ( +/obj/structure/sign/departments/engineering, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/engine) +"bn" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/mop, -/turf/open/floor/plasteel/greenblue/side, -/area/shuttle/abandoned) -"bk" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/gps{ - gpstag = "ITVSAC"; - pixel_x = -1; - pixel_y = 2 - }, -/obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 +/obj/machinery/light/small/built{ + dir = 8 }, -/area/shuttle/abandoned) -"bl" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"bm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/blue/side, +/area/shuttle/abandoned/crew) +"bo" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 +/obj/structure/closet/wardrobe/mixed, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, -/area/shuttle/abandoned) -"bn" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12 +/obj/item/storage/wallet/random, +/obj/item/clothing/under/rank/centcom_officer{ + desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; + name = "\improper dusty old CentCom jumpsuit" }, -/obj/structure/mirror{ - pixel_x = -30 +/obj/item/clothing/under/rank/centcom_commander{ + desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; + name = "\improper dusty old CentCom jumpsuit" }, +/turf/open/floor/plasteel/blue/side, +/area/shuttle/abandoned/crew) +"bp" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/turf_decal/bot, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Crew Quarters" + }, /turf/open/floor/plasteel, -/area/shuttle/abandoned) -"bo" = ( +/area/shuttle/abandoned/crew) +"bq" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/bikehorn/rubberducky, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) -"bp" = ( -/obj/structure/urinal{ - pixel_x = 30 +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Crew Quarters" }, -/obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/shuttle/abandoned) -"bq" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/abandoned) +/area/shuttle/abandoned/crew) "br" = ( +/obj/effect/turf_decal/bot_white, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/door/airlock/glass{ - name = "Crew Quarters" - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = -2; + pixel_y = 2 }, -/area/shuttle/abandoned) +/obj/item/stack/rods/fifty, +/obj/item/wrench, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/crew) "bs" = ( -/obj/machinery/vending/boozeomat, -/turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) -"bt" = ( +/obj/effect/turf_decal/delivery/white, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/shuttle/abandoned) -"bu" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/latex/nitrile, -/obj/item/clothing/mask/surgical, -/obj/item/clothing/suit/apron/surgical, +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/crew) +"bt" = ( +/obj/effect/turf_decal/bot_white, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 9 +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 }, -/area/shuttle/abandoned) -"bv" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/machinery/airalarm/all_access{ + dir = 1; + pixel_y = -24 }, -/obj/structure/light_construct{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/crew) +"bu" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/area/shuttle/abandoned) +/obj/structure/chair, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "bw" = ( -/obj/structure/closet/crate/freezer/blood, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 5 - }, -/area/shuttle/abandoned) +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "bx" = ( +/obj/machinery/light/small/built{ + dir = 4 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/table, -/obj/item/clothing/head/helmet/swat/nanotrasen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bar) "by" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/built{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) "bz" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/table, -/obj/item/clothing/gloves/color/black, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) "bA" = ( -/obj/structure/table/optable, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/defibrillator/loaded, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 +/obj/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 4 }, -/area/shuttle/abandoned) -"bB" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/item/flashlight{ + pixel_x = 3; + pixel_y = 3 }, -/obj/item/reagent_containers/spray/cleaner, -/turf/open/floor/plasteel/white, -/area/shuttle/abandoned) +/obj/item/clothing/head/welding{ + pixel_x = -2; + pixel_y = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bB" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/bridge) "bC" = ( +/obj/machinery/door/airlock/command{ + name = "Bridge" + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/storage/backpack/duffelbag/med/surgery, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 4 +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" }, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bridge) "bD" = ( +/obj/structure/sign/poster/official/nanotrasen_logo, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/bridge) +"bE" = ( +/obj/machinery/vending/cigarette, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/light_construct{ - dir = 8 - }, -/obj/structure/table, -/obj/item/clothing/suit/armor/vest, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"bE" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/light_construct{ - dir = 4 - }, -/obj/structure/table, -/obj/item/gun/energy/e_gun/mini, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/crew) "bF" = ( -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/neutral/side, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/shuttle/abandoned/crew) "bG" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/robot_debris, -/turf/open/floor/plasteel/neutral/side, -/area/shuttle/abandoned) +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/corner, +/area/shuttle/abandoned/crew) "bH" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/turf_decal/bot, -/obj/structure/closet/emcloset/anchored, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/area/shuttle/abandoned) +/obj/structure/closet/firecloset{ + anchored = 1 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/crew) "bI" = ( -/obj/structure/sign/warning/vacuum, -/turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_windows" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/crew) "bJ" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/frame/computer, -/obj/item/circuitboard/computer/operating, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 +/obj/structure/table, +/obj/item/trash/plate{ + pixel_x = 12 + }, +/obj/item/kitchen/fork{ + pixel_x = 12; + pixel_y = 3 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = -8; + pixel_y = 4 }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "bK" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/vomit/old, -/turf/open/floor/plasteel/white, -/area/shuttle/abandoned) +/obj/structure/table, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "bL" = ( -/obj/machinery/sleeper{ - icon_state = "sleeper-open"; - dir = 8 +/obj/machinery/airalarm/all_access{ + dir = 1; + pixel_y = -24 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 +/obj/structure/closet/secure_closet/freezer{ + locked = 0; + name = "fridge" + }, +/obj/item/reagent_containers/food/snacks/sausage, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = -3; + pixel_y = 3 }, -/area/shuttle/abandoned) +/obj/item/reagent_containers/food/drinks/beer, +/obj/item/reagent_containers/food/snacks/sandwich, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) "bM" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/arrival/corner{ - dir = 8 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/crew) "bN" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/clothing/suit/armor/vest, -/obj/effect/decal/cleanable/blood/gibs/body, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) +/obj/effect/turf_decal/bot_white, +/obj/machinery/space_heater, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bar) "bO" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/crowbar/red, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"bP" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/obj/machinery/door/airlock/titanium{ - glass = 1; - name = "Internal Airlock" +/obj/effect/turf_decal/bot_white, +/obj/structure/rack, +/obj/item/crowbar, +/obj/item/wrench, +/obj/item/multitool, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bar) +"bP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/shuttle/abandoned) -"bQ" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/machinery/door/airlock/titanium{ - name = "External Airlock" - }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bQ" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) "bR" = ( -/obj/machinery/iv_drip, -/obj/machinery/vending/wallmed{ - name = "Emergency NanoMed"; +/obj/machinery/turretid{ + icon_state = "control_kill"; + lethal = 1; + locked = 0; pixel_x = -28; - use_power = 0 + req_access = null }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-2" }, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bridge) "bS" = ( +/obj/structure/table, +/obj/item/folder/blue{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/pen{ + pixel_x = 5; + pixel_y = 3 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/stack/cable_coil/random, -/turf/open/floor/plasteel/white, -/area/shuttle/abandoned) -"bT" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/white, -/area/shuttle/abandoned) +/obj/machinery/recharger, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/darkblue/side{ + dir = 4 + }, +/area/shuttle/abandoned/bridge) +"bT" = ( +/obj/machinery/door/firedoor, +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_bridge" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/bridge) "bU" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/door/airlock/medical/glass{ - name = "Infirmary" +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/plasteel/white, -/area/shuttle/abandoned) +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/airalarm/all_access{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/light/small/built{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner, +/area/shuttle/abandoned/crew) "bV" = ( +/obj/machinery/light/small/built, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/arrival{ - dir = 8 +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 }, -/area/shuttle/abandoned) +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) "bW" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"bX" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/clothing/head/helmet/swat/nanotrasen, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"bY" = ( -/obj/structure/grille, -/obj/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"bZ" = ( -/obj/structure/sink{ +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/firealarm{ dir = 8; - pixel_x = -12; - pixel_y = 2 + pixel_x = -24 + }, +/obj/item/stack/spacecash/c200{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -4 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 }, +/area/shuttle/abandoned/bridge) +"bX" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 10 +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bridge) +"bY" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 }, -/area/shuttle/abandoned) -"ca" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/light_construct, -/turf/open/floor/plasteel/whiteblue/side, -/area/shuttle/abandoned) -"cb" = ( -/obj/structure/closet/secure_closet/medical2{ - req_access = null +/turf/open/floor/plasteel/darkblue/corner{ + dir = 4 + }, +/area/shuttle/abandoned/bridge) +"bZ" = ( +/obj/structure/frame/computer{ + anchored = 1; + dir = 8 }, +/obj/item/shard, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/clothing/glasses/hud/health/sunglasses, -/turf/open/floor/plasteel/whiteblue/side, -/area/shuttle/abandoned) -"cc" = ( -/obj/structure/sign/departments/medbay/alt, -/turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) -"cd" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/arrival/corner{ - dir = 1 +/turf/open/floor/plasteel/darkblue/side{ + dir = 9 }, -/area/shuttle/abandoned) -"ce" = ( -/obj/structure/sign/departments/engineering, -/turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) -"cf" = ( -/obj/machinery/autolathe, -/obj/effect/decal/cleanable/oil, +/area/shuttle/abandoned/bridge) +"ca" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) -"cg" = ( +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/shuttle/abandoned/crew) +"cb" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/tank_dispenser, -/turf/open/floor/plasteel/neutral/side{ - dir = 8; - heat_capacity = 1e+006 +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/blue/corner, +/area/shuttle/abandoned/crew) +"cc" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/engine) +"cd" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engineering" }, -/area/shuttle/abandoned) -"ch" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/bot, -/obj/machinery/light/small{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"ce" = ( +/obj/structure/table, +/obj/item/storage/photo_album{ + pixel_y = 12 }, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"ci" = ( +/obj/item/camera, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"cj" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/blood/gibs/down, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"ck" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/machinery/light/small{ + dir = 8 }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"cl" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Frigate Bridge APC"; + pixel_x = -24; + req_access = null + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/shuttle/abandoned/bridge) +"cf" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/closet/crate/science, -/obj/effect/decal/cleanable/leaper_sludge, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"cm" = ( -/obj/structure/closet/crate/engineering, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/rglass{ - amount = 20 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/item/stack/sheet/mineral/titanium/fifty, -/turf/open/floor/plasteel/yellow/corner, -/area/shuttle/abandoned) -"cn" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/rglass{ - amount = 20 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/item/clothing/head/welding, -/obj/structure/light_construct{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/item/gun/energy/laser/retro, +/mob/living/simple_animal/hostile/poison/giant_spider/tarantula{ + desc = "Furry and black, it makes you shudder to look at it. This one has abyssal red eyes, and looks abnormally thin and frail."; + environment_smash = 0; + health = 150; + maxHealth = 150; + melee_damage_lower = 20; + melee_damage_upper = 25; + name = "scrawny tarantula" + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bridge) +"cg" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 }, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) -"co" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel/neutral/side{ - dir = 8; - heat_capacity = 1e+006 +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bridge) +"ch" = ( +/obj/machinery/computer/shuttle/white_ship{ + dir = 8 }, -/area/shuttle/abandoned) -"cp" = ( -/obj/machinery/suit_storage_unit/standard_unit, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/stripes/line{ +/turf/open/floor/plasteel/darkblue/side{ dir = 8 }, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"cq" = ( +/area/shuttle/abandoned/bridge) +"cj" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/stack/cable_coil/random, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 9 +/obj/structure/cable{ + icon_state = "1-2" }, -/area/shuttle/abandoned) -"cr" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 }, -/obj/structure/light_construct{ +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/crew) +"ck" = ( +/obj/machinery/light/small/built{ dir = 1 }, -/turf/open/floor/plasteel/whitepurple/side{ +/obj/effect/turf_decal/stripes/corner{ dir = 1 }, -/area/shuttle/abandoned) -"cs" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 +/obj/machinery/power/smes/engineering{ + charge = 1e+006 }, -/area/shuttle/abandoned) -"ct" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cl" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/purple/corner{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-8" }, -/area/shuttle/abandoned) -"cu" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/item/paper/crumpled/bloody{ - info = "Your vessel will be transporting artifact E-395 to our nearby research station. Under no circumstances is the container to be opened. Half of the payment will be given now, rest upon completion. In the event of containment breach--" +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"cv" = ( -/obj/effect/decal/cleanable/dirt{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/power/apc{ + dir = 4; + name = "Frigate Engineering APC"; + pixel_x = 24; + req_access = null + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cm" = ( +/obj/structure/table, +/obj/item/radio/off{ + pixel_x = 6; + pixel_y = 14 + }, +/obj/item/gps{ + gpstag = "NTREC1"; + pixel_x = -9; + pixel_y = 15 + }, +/obj/item/megaphone, +/obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"cw" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = -24 }, -/area/shuttle/abandoned) -"cx" = ( +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/shuttle/abandoned/bridge) +"cn" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/door/airlock/engineering/glass{ - name = "Engineering Storage" +/obj/effect/decal/remains/human{ + desc = "They look like human remains, and have clearly been gnawed at." + }, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/item/clothing/head/centhat{ + desc = "There's a gouge through the top where something has clawed clean through it. Whoever was wearing it probably doesn't need a hat any more."; + name = "\improper damaged CentCom hat"; + pixel_x = 2; + pixel_y = 2 + }, +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/neutral/side{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bridge) +"co" = ( +/obj/structure/chair/comfy/shuttle{ dir = 4 }, -/area/shuttle/abandoned) -"cy" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/clothing/head/welding, -/turf/open/floor/plasteel/neutral/side{ +/obj/effect/decal/cleanable/blood/old, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/darkblue/corner, +/area/shuttle/abandoned/bridge) +"cp" = ( +/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship{ dir = 8; - heat_capacity = 1e+006 + x_offset = -2; + y_offset = -8 }, -/area/shuttle/abandoned) -"cz" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 8 +/turf/open/floor/plasteel/darkblue/side{ + dir = 10 }, -/area/shuttle/abandoned) -"cA" = ( +/area/shuttle/abandoned/bridge) +"cq" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/door/airlock/research{ - glass = 1; - name = "Research Lab" +/turf/open/floor/plasteel/blue/corner{ + dir = 1 }, -/turf/open/floor/plasteel/white, -/area/shuttle/abandoned) -"cB" = ( +/area/shuttle/abandoned/crew) +"cr" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/purple/side{ +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/shuttle/abandoned/crew) +"cs" = ( +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/area/shuttle/abandoned) -"cC" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/clothing/gloves/color/black, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"cD" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/machinery/power/terminal{ + dir = 1 }, -/obj/effect/decal/cleanable/greenglow, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"cE" = ( +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"ct" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/airlock_painter, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/yellow/corner{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/button/door{ + id = "whiteship_windows"; + name = "Windows Blast Door Control"; + pixel_x = -24; + pixel_y = -5 + }, +/obj/machinery/button/door{ + id = "whiteship_bridge"; + name = "Bridge Blast Door Control"; + pixel_x = -24; + pixel_y = 5 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bridge) +"cu" = ( +/obj/structure/table, +/obj/item/phone{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/cigbutt/cigarbutt{ + pixel_x = 5; + pixel_y = -1 }, -/area/shuttle/abandoned) -"cF" = ( -/obj/structure/closet/toolcloset, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) -"cG" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/stack/rods/twentyfive, -/turf/open/floor/plasteel/neutral/side{ - dir = 8; - heat_capacity = 1e+006 +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/darkblue/side{ + dir = 4 }, -/area/shuttle/abandoned) -"cH" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/structure/light_construct/small, +/area/shuttle/abandoned/bridge) +"cv" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"cI" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/frame/computer, -/obj/item/stack/sheet/glass, -/turf/open/floor/plasteel/whitepurple/side{ +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/spider/stickyweb, +/obj/machinery/light/small/built{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/shuttle/abandoned/crew) +"cw" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/crew) +"cx" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/cargo) +"cy" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/cargo) +"cz" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_windows" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/cargo) +"cA" = ( +/obj/machinery/porta_turret/centcom_shuttle/weak{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/cargo) +"cB" = ( +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/area/shuttle/abandoned) -"cJ" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/circuitboard/machine/circuit_imprinter, -/turf/open/floor/plasteel/white, -/area/shuttle/abandoned) -"cK" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable, +/obj/item/wrench, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cC" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/frame/machine, -/turf/open/floor/plasteel/whitepurple/corner, -/area/shuttle/abandoned) -"cL" = ( -/obj/structure/sign/departments/science, -/turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) -"cM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cD" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/light_construct{ - dir = 8 +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 }, -/turf/open/floor/plasteel/purple/corner{ - dir = 1 +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stack/cable_coil/red, +/obj/item/stock_parts/cell/high, +/obj/item/multitool{ + pixel_y = -13 }, -/area/shuttle/abandoned) -"cN" = ( +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cE" = ( +/obj/machinery/vending/coffee, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"cO" = ( +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/crew) +"cF" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/light_construct{ - dir = 4 +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"cP" = ( +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/crew) +"cG" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/frame/machine, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 8 +/obj/structure/table, +/obj/item/screwdriver{ + pixel_y = 15 }, -/area/shuttle/abandoned) -"cQ" = ( +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/cargo) +"cH" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/frame/machine, -/turf/open/floor/plasteel/whitepurple/side{ +/obj/effect/turf_decal/box/white/corners{ dir = 4 }, -/area/shuttle/abandoned) -"cR" = ( +/obj/structure/closet/crate, +/obj/item/grenade/chem_grenade/metalfoam, +/obj/item/relic, +/obj/item/t_scanner, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"cI" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"cS" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 +/obj/structure/closet, +/obj/item/storage/toolbox/emergency, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"cJ" = ( +/obj/item/storage/toolbox/emergency, +/obj/item/storage/toolbox/emergency, +/obj/item/flashlight/flare{ + pixel_x = 3; + pixel_y = 3 }, -/obj/machinery/door/airlock/titanium{ - name = "External Airlock" +/obj/item/flashlight/flare{ + pixel_x = -6; + pixel_y = -2 }, +/obj/item/crowbar, +/obj/item/wrench, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/extinguisher, +/obj/item/extinguisher, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/docking_port/mobile{ - dheight = 0; - dir = 8; - dwidth = 11; - height = 15; - id = "whiteship"; - launch_status = 0; - name = "White-Ship"; - port_direction = 8; - preferred_direction = 8; - width = 32 +/obj/machinery/airalarm/all_access{ + pixel_y = 24 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/obj/structure/closet/crate/internals, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"cK" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 }, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) -"cT" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 10 - }, -/area/shuttle/abandoned) -"cU" = ( +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"cL" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/light_construct, -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plasteel/whitepurple/side, -/area/shuttle/abandoned) -"cV" = ( -/obj/structure/closet/crate/science{ - name = "spare circuit boards crate" - }, -/obj/item/circuitboard/computer/rdconsole, -/obj/item/circuitboard/machine/protolathe, +/obj/effect/turf_decal/bot_white, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"cM" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/reagent_containers/glass/beaker/sulphuric, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 6 - }, -/area/shuttle/abandoned) -"cW" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/built, -/turf/open/floor/plasteel/blue/side, -/area/shuttle/abandoned) -"cX" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/closet/crate/secure/weapon, +/obj/item/gun/energy/laser/retro, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"cN" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/blue/corner{ +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/area/shuttle/abandoned) -"cY" = ( +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cO" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"cZ" = ( -/obj/machinery/light/small{ - brightness = 3; +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cP" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/neutral/side{ +/obj/machinery/light/small/built{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/side{ dir = 1 }, -/area/shuttle/abandoned) -"da" = ( +/area/shuttle/abandoned/medbay) +"cQ" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/turf_decal/bot, -/obj/structure/closet/emcloset/anchored, -/turf/open/floor/plasteel/neutral/corner{ +/obj/structure/rack, +/obj/item/defibrillator, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/blue/side{ dir = 1 }, -/area/shuttle/abandoned) -"db" = ( +/area/shuttle/abandoned/medbay) +"cR" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/medbay) +"cS" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay" + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/door/airlock/command/glass{ - name = "Bridge"; - welded = 1 +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) +"cT" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay" }, -/turf/open/floor/plasteel/neutral/side, -/area/shuttle/abandoned) -"dc" = ( -/obj/structure/table, -/obj/machinery/recharger, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/cobweb, -/obj/item/stack/spacecash/c1000, -/obj/item/stack/spacecash/c1000, -/turf/open/floor/plasteel/blue/side{ - dir = 9 +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" }, -/area/shuttle/abandoned) -"dd" = ( -/obj/structure/closet/crate, -/obj/item/paper_bin, -/obj/item/stack/sheet/metal/twenty, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) +"cU" = ( +/obj/effect/turf_decal/bot_white, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/clothing/under/gimmick/rank/captain/suit, -/turf/open/floor/plasteel/blue/corner{ - dir = 1 +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/storage/toolbox/electrical{ + pixel_x = -3; + pixel_y = 8 + }, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000; + pixel_x = 3; + pixel_y = -1 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/medbay) +"cV" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/rack, +/obj/item/storage/belt/utility, +/obj/item/radio/off{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/radio/off, +/obj/machinery/airalarm/all_access{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/medbay) +"cW" = ( +/obj/structure/sign/departments/cargo, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/cargo) +"cX" = ( +/obj/machinery/light/small/built{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/cargo) +"cY" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"cZ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"da" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/box/white/corners, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"db" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"dc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/area/shuttle/abandoned) +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"dd" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) "de" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engineering" + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/megaphone, -/turf/open/floor/plasteel/blue/corner{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/area/shuttle/abandoned) +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) "df" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/built{ - dir = 1 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/blue/side{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-8" }, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) "dg" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/table, -/obj/item/stack/cable_coil/random, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" }, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) "dh" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/table, -/obj/item/camera, -/turf/open/floor/plasteel/blue/side{ - dir = 5 +/obj/machinery/door/airlock/medical{ + name = "Medbay Storage" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) "di" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/light_construct{ - dir = 8 - }, -/obj/item/phone, -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned/medbay) "dj" = ( +/obj/machinery/light/small/built{ + dir = 1 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/blood/gibs/torso, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/spider/stickyweb, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/shuttle/abandoned/medbay) "dk" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/shard, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/shuttle/abandoned/medbay) "dl" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/light_construct{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/blue/side{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" }, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/shuttle/abandoned/medbay) "dm" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/blue/side{ - dir = 10 +/obj/machinery/light/small{ + dir = 1 + }, +/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/shuttle/abandoned) +/area/shuttle/abandoned/medbay) "dn" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/obj/machinery/light/small/built, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/pen/fountain/captain, -/turf/open/floor/plasteel/neutral/side{ - dir = 5 +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/medbay) "do" = ( -/obj/structure/chair/comfy/black, +/obj/effect/turf_decal/stripes/white/line, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/neutral, -/area/shuttle/abandoned) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/medbay) "dp" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/neutral/side{ - dir = 9 +/obj/machinery/light/small, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/spider/stickyweb, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/medbay) "dq" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/external/glass{ + name = "E.V.A Access" + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/storage/photo_album, -/turf/open/floor/plasteel/blue/corner, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) "dr" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/blue/side{ - dir = 6 +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/external/glass{ + name = "E.V.A Access" }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel, +/area/shuttle/abandoned/cargo) "ds" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/storage/fancy/cigarettes/cigars/cohiba, -/turf/open/floor/plasteel/blue/side{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/area/shuttle/abandoned) +/turf/open/floor/plasteel, +/area/shuttle/abandoned/cargo) "dt" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship{ - dir = 1; - x_offset = -7; - y_offset = -8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/blue/side, -/area/shuttle/abandoned) +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/cargo) "du" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/table, -/obj/item/pda/clear, -/turf/open/floor/plasteel/blue/side, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/mob/living/simple_animal/hostile/poison/giant_spider/nurse{ + desc = "Furry and black, it makes you shudder to look at it. This one has brilliant green eyes, and looks abnormally thin and frail."; + environment_smash = 0; + health = 30; + maxHealth = 30; + name = "scrawny giant spider" + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/cargo) "dv" = ( -/obj/machinery/computer/shuttle/white_ship{ - dir = 1 +/obj/structure/chair/comfy/shuttle{ + dir = 4 }, +/obj/effect/turf_decal/bot_white, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/blue/side, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) "dw" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/frame/computer{ + anchored = 1; + dir = 8 + }, +/obj/item/shard, +/obj/effect/turf_decal/bot_white, +/obj/item/stack/rods, +/obj/item/stack/cable_coil/cut/red, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"dx" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/girder/reinforced, +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned/cargo) +"dy" = ( +/obj/structure/grille, +/obj/item/stack/sheet/mineral/titanium, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned/cargo) +"dz" = ( +/obj/structure/grille/broken, +/obj/item/stack/rods{ + amount = 3 + }, +/obj/item/shard, +/obj/item/stack/cable_coil/cut/red, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned/cargo) +"dA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/table, -/obj/item/radio, -/turf/open/floor/plasteel/blue/side, -/area/shuttle/abandoned) -"dx" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal/twenty, +/obj/item/stack/sheet/glass{ + amount = 10 + }, +/obj/item/storage/box/lights/bulbs, +/obj/item/stack/sheet/mineral/plasma{ + amount = 10 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"dB" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/plasteel/blue/side, -/area/shuttle/abandoned) - -(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 -"} -(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 -"} -(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 -"} -(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 -"} -(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 -"} -(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 -"} -(7,1,1) = {" -aa -aa -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -bq -bq -ae -ae -ae -ae -bq -bq -bq -ae -ae -aa -aa -aa -aa -aa -aa -"} -(8,1,1) = {" -aa -ab -af -aj -as -ae -aI -aO -aV -ba -bi -ae -bu -bA -bJ -bR -bZ -ae -cq -cz -cI -cP -cT -ae -aa -aa -aa -aa -aa -aa -"} -(9,1,1) = {" -aa -ab -af -ak -at -ae -aJ -aO -ap -bb -aH -ae -bv -bB -bK -bS -ca -ae -cr -bT -cJ -bT -cU -ae -ae -ae -bq -bq -aa -aa -"} -(10,1,1) = {" -aa -aa -ae -ae -au -ac -ac -aP -ap -bc -bj -ae -bw -bC -bL -bT -cb -ae -cs -bT -cK -cQ -cV -ae -dc -di -dm -bq -bq -aa -"} -(11,1,1) = {" -aa -aa -ae -al -av -aD -ac -ae -ae -bd -ae -ae -ae -ae -bq -bU -cc -ae -bq -cA -cL -ae -ae -ae -dd -bc -cX -ds -bq -aa -"} -(12,1,1) = {" -aa -aa -ae -am -aw -aE -aK -aQ -aW -be -bk -bq -bx -bD -bM -bV -cd -ci -ct -cB -cM -av -av -db -bc -bc -dn -dt -bq -aa -"} -(13,1,1) = {" -aa -ac -ac -ac -ax -aB -av -aR -av -bf -av -br -av -aB -bN -bW -av -cj -cu -cC -cN -cR -aG -ae -de -dj -bc -du -bq -aa -"} -(14,1,1) = {" -aa -ad -ag -an -ay -av -aL -av -aB -av -bl -bs -by -aB -aB -av -av -ck -aB -ck -av -av -cW -ae -df -dk -do -dv -bq -aa -"} -(15,1,1) = {" -aa -ac -ah -ac -az -aF -av -av -aX -av -av -br -av -av -bO -aB -av -cl -cv -cD -av -av -cX -ae -ax -bc -bc -dw -bq -aa -"} -(16,1,1) = {" -aa -aa -ae -ao -ax -aG -aM -aS -aY -bg -bm -bq -bz -bE -av -bX -av -cm -cw -cE -cO -av -cY -db -bc -bc -dp -dx -bq -aa -"} -(17,1,1) = {" -aa -aa -ae -ap -av -aH -ac -ae -ae -aZ -ae -ae -ae -ae -bP -ae -ce -bq -cx -ae -ae -bP -ae -ae -dg -bc -dq -dr -bq -aa -"} -(18,1,1) = {" -aa -aa -ae -ae -aA -ac -ac -aT -aZ -bc -bn -bn -ae -bF -bc -ae -cf -cn -bc -cF -ae -bc -cZ -ae -dh -dl -dr -bq -bq -aa -"} -(19,1,1) = {" -aa -ab -af -aq -aB -ae -ae -ae -ae -bh -bo -bt -ae -bG -bc -bY -cg -co -cy -cG -bY -bc -bt -ae -ae -ae -bq -bq -aa -aa -"} -(20,1,1) = {" -aa -ab -ai -ar -aC -ae -aN -aU -aZ -bc -bp -bp -ae -bH -bc -ae -ch -cp -cp -cH -ae -bc -da -ae -aa -aa -aa -aa -aa -aa -"} -(21,1,1) = {" -aa -aa -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -bI -bQ -ae -ae -bq -bq -ae -ae -cS -bI -ae -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 -"} -(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 -"} -(24,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +/obj/structure/closet/crate, +/obj/item/shovel, +/obj/item/pickaxe, +/obj/item/storage/box/lights/mixed, +/obj/item/mining_scanner, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"dC" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/cargo) +"dD" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/vending/medical{ + req_access = null + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/white/side, +/area/shuttle/abandoned/medbay) +"dE" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/small/built{ + dir = 4 + }, +/obj/machinery/airalarm/all_access{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/white/side, +/area/shuttle/abandoned/medbay) +"dF" = ( +/obj/structure/table/optable, +/obj/item/storage/firstaid/regular, +/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" + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/shuttle/abandoned/medbay) +"dG" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/mob/living/simple_animal/hostile/poison/giant_spider/hunter{ + desc = "Furry and black, it makes you shudder to look at it. This one has sparkling purple eyes, and looks abnormally thin and frail."; + environment_smash = 0; + health = 60; + maxHealth = 60; + melee_damage_lower = 5; + melee_damage_upper = 10; + name = "scrawny spider" + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/medbay) +"dH" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/medbay) +"dI" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/medbay) +"dJ" = ( +/obj/machinery/light/small/built{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 8; + name = "Frigate Cargo APC"; + pixel_x = -24; + req_access = null + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/cargo) +"dK" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"dL" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"dM" = ( +/obj/machinery/light/small/built{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"dN" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 6 + }, +/obj/item/reagent_containers/glass/bottle/charcoal{ + pixel_x = -3 + }, +/obj/item/reagent_containers/syringe, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned/medbay) +"dO" = ( +/obj/structure/table, +/obj/item/storage/backpack/duffelbag/med/surgery{ + pixel_y = 4 + }, +/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" + }, +/obj/machinery/airalarm/all_access{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned/medbay) +"dP" = ( +/obj/machinery/sleeper{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/shuttle/abandoned/medbay) +"dQ" = ( +/obj/machinery/iv_drip, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/obj/machinery/power/apc{ + name = "Frigate Medbay APC"; + pixel_y = -24; + req_access = null + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned/medbay) +"dR" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_containers/blood{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/reagent_containers/blood/OMinus, +/obj/item/reagent_containers/blood/random, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/white, +/area/shuttle/abandoned/medbay) +"dS" = ( +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plating, +/area/shuttle/abandoned/medbay) +"dT" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/obj/machinery/light/small/built{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/medbay) +"dU" = ( +/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" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/frame/computer{ + anchored = 1; + dir = 4 + }, +/obj/item/shard, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"dV" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/cargo) +"dW" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"dX" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"dY" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/box/white/corners, +/obj/structure/closet/crate/medical, +/obj/item/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/roller{ + pixel_y = 4 + }, +/obj/item/healthanalyzer, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"dZ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"ea" = ( +/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" + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"eb" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/medbay) +"iM" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/medbay) +"oo" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/shuttle/abandoned/crew) +"vm" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/medbay) +"DZ" = ( +/obj/effect/turf_decal/delivery/white, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/medbay) +"SY" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_windows" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/medbay) + +(1,1,1) = {" aa aa aa aa +ah +ay +aM +ah aa +ah +ay +aM +ah 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 +(2,1,1) = {" aa +ah +ay +aM +ai +az +az +ai +ai +ai +az +az +ai +ay +aM +ah 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 +(3,1,1) = {" aa +ai +az +az +ai +by +bP +bV +cc +ck +cs +cB +ai +az +az +ai aa +"} +(4,1,1) = {" aa +ai +aA +aN +bk +bz +bQ +bz +cd +cl +bz +cC +cN +dc +dA +ai aa +"} +(5,1,1) = {" aa +ai +aB +dd +bl +bA +bB +bB +bB +bB +bB +cD +cO +dd +dB +ai aa +"} +(6,1,1) = {" aa +ai +ai +de +bm +bB +bB +bW +ce +cm +bB +bB +bm +de +ai +ai 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 +(7,1,1) = {" +ac +ac +ac +aQ +bn +bC +bR +bX +cf +cn +ct +bC +cP +df +dD +vm +iM +"} +(8,1,1) = {" +ac +aj +aC +aR +bo +bD +bS +bY +cg +co +cu +bD +cQ +dg +dE +dN +vm +"} +(9,1,1) = {" +ac +ak +aD +aS +ac +bB +bT +bZ +ch +cp +bT +bB +vm +dh +vm +vm +vm +"} +(10,1,1) = {" +ac +ac +ac +aT +ac +bE +bT +bT +bT +bT +bT +cE +vm +dj +dF +dO +vm +"} +(11,1,1) = {" +bI +al +aE +oo +bp +bF +bF +ca +bM +cq +cq +cq +cS +dk +dH +di +SY +"} +(12,1,1) = {" +ac +ac +ac +aU +bq +bG +bU +cb +cj +cr +cv +cr +cT +dl +dG +dQ +vm +"} +(13,1,1) = {" +bI +am +aF +aV +ac +bH +ac +bI +ac +bI +ac +cF +cR +dm +dP +dR +SY +"} +(14,1,1) = {" +ac +ac +ac +aJ +ac +ac +cw aa aa aa +cw +ac +vm +dq +vm +vm +vm "} -(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 +(15,1,1) = {" +ac +an +ac +aX +br +ac aa aa aa aa aa +vm +cU +dn +vm +dS +vm "} -(29,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(16,1,1) = {" +ad +ao +aG +aY +bs +bI aa aa aa aa aa +SY +DZ +do +dI +dT +eb +"} +(17,1,1) = {" +ac +ac +ac +aZ +bt +ac aa aa aa aa aa +vm +cV +dp +vm +vm +vm +"} +(18,1,1) = {" +ae +ap +ae +aW +ae +ae +ax aa aa aa +cx +cy +cW +dr +cy +dU +cy +"} +(19,1,1) = {" +ae +ab +at +ba +bd +bw +ae aa aa aa +cy +cG +cX +dt +dJ +dV +cy "} -(30,1,1) = {" -aa -aa +(20,1,1) = {" +af +aq +aH +bb +bu +bJ +af aa aa aa +cz +cH +dL +ds +dK +dW +cz +"} +(21,1,1) = {" +ae +ar +aI +bc +bu +bK +ae aa aa aa +cy +cI +cZ +du +cZ +dX +cy +"} +(22,1,1) = {" +ae +as +aK +be +be +bL +ae aa aa aa +cy +cJ +da +dC +cY +dY +cy +"} +(23,1,1) = {" +ae +au +aL +bf +bx +au +ae aa aa aa +cy +cK +db +dv +dM +cK +cy +"} +(24,1,1) = {" +af +av +ae +bg +ae +bN +af aa aa aa +cz +cL +cy +dw +cy +dZ +cz +"} +(25,1,1) = {" +ae +aw +ae +bh +ae +bO +ae aa aa aa +cy +cM +cy +dx +cy +ea +cy +"} +(26,1,1) = {" +ag +ae +ae +bi +ae +ae +ag aa aa aa +cA +cy +cy +dy +cy +cy +cA +"} +(27,1,1) = {" aa +ax +ae +bj +ae +ax aa aa aa aa aa +cx +cy +dz +cy +cx aa "} diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm index 9888026e31..ddf07b5167 100644 --- a/_maps/shuttles/whiteship_meta.dmm +++ b/_maps/shuttles/whiteship_meta.dmm @@ -4,77 +4,69 @@ /area/template_noop) "ab" = ( /turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) +/area/shuttle/abandoned/engine) "ac" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/abandoned) +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/engine) "ad" = ( -/obj/machinery/door/airlock/titanium{ - name = "recovery shuttle external airlock" - }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/cargo) +"ae" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"ae" = ( -/obj/machinery/door/airlock/titanium{ - name = "recovery shuttle external airlock" +/obj/effect/turf_decal/bot_white, +/obj/machinery/door/poddoor{ + id = "whiteship_port" }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/turf/open/floor/plating, +/area/shuttle/abandoned/cargo) +"af" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/door/poddoor{ + id = "whiteship_port" }, +/turf/open/floor/plating, +/area/shuttle/abandoned/cargo) +"ag" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/crew) +"ah" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/docking_port/mobile{ callTime = 250; + can_move_docking_ports = 1; dheight = 0; dir = 2; dwidth = 11; - height = 15; + height = 17; id = "whiteship"; launch_status = 0; movement_force = list("KNOCKDOWN" = 0, "THROW" = 0); - name = "NT Recovery White-Ship"; + name = "Salvage Ship"; port_direction = 8; preferred_direction = 4; - width = 28 + width = 33 }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"ag" = ( -/obj/structure/shuttle/engine/propulsion/left{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) -"ah" = ( -/obj/structure/toilet{ - pixel_y = 9 +/turf/open/floor/plating, +/area/shuttle/abandoned/crew) +"ai" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/crew) +"aj" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_windows" }, +/turf/open/floor/plating, +/area/shuttle/abandoned/crew) +"ak" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/greenglow{ - desc = "Looks like something's sprung a leak" - }, -/obj/machinery/light/small/built{ - dir = 8 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"ai" = ( -/obj/structure/mirror{ - pixel_x = 28 - }, -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -83,84 +75,94 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"aj" = ( -/obj/structure/closet/wardrobe/mixed, -/obj/item/clothing/under/rank/centcom_officer{ - desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; - name = "\improper dusty old CentCom jumpsuit" - }, -/obj/item/clothing/under/rank/centcom_commander{ - desc = "A badge on the arm indicates that it's meant to be worn by CentCom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; - name = "\improper dusty old CentCom jumpsuit" - }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"al" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"ak" = ( -/obj/structure/table, -/obj/item/storage/pill_bottle/dice{ - pixel_y = 3 - }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"al" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stock_parts/cell/high{ - charge = 100; - maxcharge = 15000; - pixel_y = 2 +/obj/machinery/space_heater, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"am" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_windows" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"an" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/cargo) +"ao" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 4 }, -/obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"am" = ( -/obj/machinery/suit_storage_unit/standard_unit, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"an" = ( -/obj/structure/tank_dispenser/oxygen{ - layer = 2.7; - pixel_x = -1; - pixel_y = 2 +/obj/machinery/button/door{ + id = "whiteship_port"; + name = "Port Blast Door Control"; + pixel_x = -24; + pixel_y = 5 }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"ap" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"ao" = ( -/obj/structure/sign/warning/vacuum{ - pixel_x = -32 +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"aq" = ( +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = -2 + }, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = 5 + }, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = 1; + pixel_y = -3 + }, +/obj/item/reagent_containers/food/snacks/beans{ + pixel_x = 8; + pixel_y = -3 + }, +/obj/structure/closet/crate{ + name = "food crate" }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/small/built{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"ap" = ( +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"ar" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -169,430 +171,312 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"aq" = ( -/obj/structure/closet/crate/medical{ - name = "medical crate" +/obj/structure/closet/crate{ + name = "food crate" }, -/obj/item/storage/firstaid/o2{ +/obj/item/vending_refill/cigarette{ pixel_x = 3; pixel_y = 3 }, -/obj/item/roller{ - pixel_y = 4 +/obj/item/vending_refill/cigarette, +/obj/item/vending_refill/coffee{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"as" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 8 }, -/obj/item/healthanalyzer, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/turf_decal/bot, -/obj/machinery/light/small/built{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"ar" = ( -/obj/structure/closet/crate{ - name = "spare equipment crate" - }, -/obj/item/grenade/chem_grenade/metalfoam, -/obj/item/relic, -/obj/item/t_scanner, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"as" = ( -/obj/item/storage/box/lights/mixed, -/obj/item/cigbutt, -/obj/structure/closet/crate{ - icon_state = "crateopen"; - name = "spare equipment crate" +/obj/machinery/button/door{ + id = "whiteship_port"; + name = "Port Blast Door Control"; + pixel_x = 24; + pixel_y = 5 }, -/obj/item/tank/internals/oxygen/red, -/obj/item/tank/internals/air, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"at" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 }, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"at" = ( -/obj/structure/closet/crate{ - name = "emergency supplies crate" +/obj/machinery/light/small/built{ + dir = 8 }, -/obj/item/storage/toolbox/emergency, -/obj/item/storage/toolbox/emergency, -/obj/item/flashlight/flare{ - pixel_x = 3; - pixel_y = 3 +/turf/open/floor/plating, +/area/shuttle/abandoned/crew) +"au" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/obj/item/flashlight/flare{ - pixel_x = -6; - pixel_y = -2 +/obj/machinery/airalarm/all_access{ + pixel_y = 24 }, -/obj/item/crowbar, -/obj/item/wrench, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/extinguisher, -/obj/item/extinguisher, -/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/closet/secure_closet/personal, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"au" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/crew) "av" = ( -/obj/structure/shuttle/engine/heater{ - dir = 8 +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/obj/structure/window/reinforced{ +/obj/structure/bed, +/obj/machinery/light/small/built{ dir = 4 }, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) +/obj/item/bedsheet/brown, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/crew) "aw" = ( -/obj/machinery/door/airlock/titanium{ - name = "bathroom" +/obj/machinery/light/small{ + dir = 8 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) +/obj/structure/bed, +/obj/item/bedsheet/brown, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/crew) "ax" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/blood/gibs/old, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/remains/human{ - desc = "They look like human remains, and have clearly been gnawed at." +/obj/structure/shuttle/engine/propulsion/left{ + dir = 8 }, -/obj/item/gun/energy/laser/retro, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) +/turf/open/floor/plating/airless, +/area/shuttle/abandoned/engine) "ay" = ( -/obj/structure/bed, -/obj/item/bedsheet/centcom, -/obj/effect/decal/remains/human, -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/machinery/light/small/built{ +/obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/obj/structure/shuttle/engine/heater{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned/engine) "az" = ( -/obj/structure/table, -/obj/item/storage/belt/utility, -/obj/item/storage/belt/utility, -/obj/item/radio/off, -/obj/item/radio/off, -/obj/item/radio/off, -/obj/item/radio/off, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/small/built{ - dir = 8 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) "aA" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) "aB" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"aC" = ( -/obj/machinery/door/airlock/titanium{ - name = "E.V.A. equipment" +/obj/structure/closet/firecloset/full{ + anchored = 1 }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"aC" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"aD" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/blood/gibs/old, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/remains/human{ - desc = "They look like human remains, and have clearly been gnawed at." - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"aE" = ( -/obj/machinery/door/airlock/titanium{ - name = "cargo bay" - }, -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/turf/open/floor/plasteel{ - dir = 1 - }, -/area/shuttle/abandoned) -"aF" = ( -/obj/effect/decal/cleanable/oil, +/obj/structure/closet/emcloset/anchored, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"aD" = ( +/obj/effect/turf_decal/bot_white, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/turf/open/floor/plasteel{ - dir = 1 - }, -/area/shuttle/abandoned) -"aG" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/turf_decal/delivery{ - dir = 1 +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"aE" = ( +/obj/structure/closet/crate{ + name = "food crate" }, -/turf/open/floor/plasteel{ - dir = 1 +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = -5; + pixel_y = 3 }, -/area/shuttle/abandoned) -"aH" = ( -/obj/effect/decal/cleanable/robot_debris/old, -/obj/effect/decal/cleanable/oil, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = 2; + pixel_y = 3 }, -/obj/effect/turf_decal/delivery{ - dir = 1 +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = -2 }, -/turf/open/floor/plasteel{ - dir = 1 +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = 5 }, -/area/shuttle/abandoned) -"aI" = ( -/obj/machinery/shower{ - dir = 4 +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = 1; + pixel_y = -3 }, -/obj/machinery/door/window/westright{ - dir = 4 +/obj/item/reagent_containers/glass/beaker/waterbottle/large{ + pixel_x = 8; + pixel_y = -3 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/soap/nanotrasen, -/obj/effect/decal/remains/human{ - desc = "They look like human remains, and have clearly been gnawed at." - }, -/obj/effect/decal/cleanable/blood/gibs/old, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"aJ" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/structure/mirror{ - pixel_x = 28 - }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"aF" = ( +/obj/effect/turf_decal/box/white/corners, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/small/built{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"aK" = ( -/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"aG" = ( +/obj/effect/turf_decal/bot_white, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"aL" = ( -/obj/structure/bed, -/obj/item/bedsheet/centcom, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"aM" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass/fifty{ - pixel_x = -2; - pixel_y = 2 +/obj/structure/closet/firecloset/full{ + anchored = 1 }, -/obj/item/stack/rods/fifty, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"aH" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/wrench, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"aN" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 6 - }, -/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/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/delivery/white, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"aO" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/small{ - dir = 4 +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/crew) +"aI" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"aP" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/small/built{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"aQ" = ( -/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/shuttle/abandoned/crew) +"aJ" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"aR" = ( -/obj/structure/closet/emcloset, +/obj/machinery/door/airlock{ + name = "Cabin 1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/crew) +"aK" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/turf_decal/bot, -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"aS" = ( -/obj/structure/closet/firecloset/full, +/obj/machinery/door/airlock{ + name = "Cabin 2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/crew) +"aL" = ( +/obj/structure/shuttle/engine/propulsion/right{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned/engine) +"aM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/shuttle/abandoned) -"aT" = ( -/obj/structure/sign/departments/restroom, -/turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) -"aU" = ( -/obj/machinery/door/airlock/titanium{ - name = "bathroom" - }, -/obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"aV" = ( -/obj/machinery/door/airlock/titanium{ - name = "dormitory" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 }, -/obj/effect/decal/cleanable/blood/old, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"aN" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"aW" = ( -/obj/machinery/vending/boozeomat{ - icon_deny = "smartfridge"; - icon_state = "smartfridge"; - req_access_txt = "0"; - use_power = 0 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) -"aX" = ( -/obj/machinery/door/airlock/titanium{ - name = "recovery shuttle interior airlock" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/remains/human, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"aO" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -601,1518 +485,3268 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"aY" = ( -/obj/structure/sign/departments/cargo, -/turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) -"aZ" = ( -/obj/machinery/door/airlock/titanium{ - name = "cargo bay" +/mob/living/simple_animal/hostile/syndicate/ranged{ + environment_smash = 0; + name = "Syndicate Salvage Worker" }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"aP" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/turf_decal/delivery{ - dir = 1 +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/plasteel{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/area/shuttle/abandoned) -"ba" = ( -/obj/machinery/porta_turret/centcom_shuttle/weak{ - dir = 4 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) -"bb" = ( -/obj/machinery/vending/cigarette{ - use_power = 0 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bc" = ( -/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"aQ" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"bd" = ( -/obj/effect/decal/cleanable/blood/gibs/old, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 }, -/obj/machinery/light/built{ - dir = 1 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"be" = ( -/obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"bf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"aR" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"bg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"aS" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/built{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"bh" = ( -/obj/effect/decal/cleanable/cobweb, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"aT" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/table, -/obj/item/camera, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bi" = ( -/obj/structure/table, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/folder/blue, -/obj/item/pen, -/obj/machinery/light{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bj" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/storage/photo_album, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bk" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -1; - pixel_y = 6 +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"aU" = ( +/obj/effect/turf_decal/arrows/white{ + dir = 1 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bl" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/structure/sign/warning/vacuum{ - pixel_x = -32 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"aV" = ( +/obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/small/built{ +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"bm" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/crew) +"aW" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bo" = ( -/obj/structure/chair/comfy/shuttle, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bp" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/crew) +"aX" = ( +/obj/machinery/light/small{ + dir = 1 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, +/obj/machinery/airalarm/all_access{ + pixel_y = 24 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/crew) +"aY" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bq" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/crew) +"aZ" = ( +/obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/turretid{ - icon_state = "control_kill"; - lethal = 1; - locked = 0; - pixel_x = -28; - req_access = null +/obj/machinery/door/airlock/glass{ + name = "Crew Quarters" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"br" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/crew) +"ba" = ( +/obj/machinery/light/small/built, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/shuttle/abandoned/crew) +"bb" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/chair/office/light{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral/side{ dir = 1 }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"bs" = ( -/obj/structure/table, -/obj/item/folder/blue, +/area/shuttle/abandoned/crew) +"bc" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/gps{ - gpstag = "NTREC1"; - pixel_x = -1; - pixel_y = 2 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bt" = ( -/obj/machinery/door/airlock/titanium{ - name = "recovery shuttle interior airlock" +/obj/machinery/airalarm/all_access{ + pixel_y = 24 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"bu" = ( -/obj/structure/chair/comfy/shuttle{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bv" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/shaker, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/shuttle/abandoned/crew) +"bd" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bw" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/condiment/peppermill{ - pixel_x = 3; - pixel_y = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 4 +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/shuttle/abandoned/crew) +"be" = ( +/obj/machinery/light/small/built{ + dir = 1 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bx" = ( -/obj/structure/table, -/obj/item/storage/fancy/donut_box, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"by" = ( -/obj/structure/chair/comfy/shuttle{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/shuttle/abandoned/crew) +"bf" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bz" = ( -/obj/machinery/door/airlock/titanium{ - name = "living quarters" +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 }, +/obj/structure/closet/wardrobe/black, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/crew) +"bg" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"bA" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/roller{ - pixel_x = -3; - pixel_y = 7 +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/obj/item/roller{ - pixel_x = 3; - pixel_y = 4 +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 }, -/obj/item/reagent_containers/spray/cleaner, -/obj/structure/table, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bB" = ( -/obj/item/clothing/suit/bio_suit, -/obj/item/clothing/suit/bio_suit, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bh" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/head/bio_hood, -/obj/item/clothing/head/bio_hood, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, /obj/structure/table, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bC" = ( -/obj/effect/decal/cleanable/blood/gibs/old, -/obj/effect/decal/cleanable/blood/old, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 4 + }, +/obj/item/flashlight{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bi" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/remains/human{ - desc = "They look like human remains, and have clearly been gnawed at." +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bD" = ( -/obj/effect/decal/cleanable/blood/old, +/obj/machinery/airalarm/all_access{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/light/small/built, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bj" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bE" = ( +/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/clothing/gloves/color/black, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/suit/armor/vest, -/obj/item/clothing/suit/armor/vest, -/obj/structure/table, -/obj/item/clothing/head/helmet/swat/nanotrasen, -/obj/item/clothing/head/helmet/swat/nanotrasen, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bF" = ( -/obj/item/storage/toolbox/emergency{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/storage/toolbox/emergency, -/obj/item/storage/toolbox/emergency{ - pixel_x = 3; - pixel_y = -3 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bk" = ( +/obj/effect/turf_decal/bot_white, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/table, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bG" = ( -/obj/machinery/door/airlock/titanium{ - name = "bridge" - }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"bH" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/structure/chair/comfy/black{ +/obj/structure/rack, +/obj/item/storage/belt/utility, +/obj/item/weldingtool, +/obj/item/clothing/head/welding, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"bl" = ( +/obj/effect/turf_decal/box/white/corners{ dir = 4 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bI" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/computer/shuttle/white_ship{ +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"bm" = ( +/obj/effect/turf_decal/box/white/corners{ dir = 8 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bJ" = ( -/obj/structure/reagent_dispensers/watertank, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/light_construct/small{ - dir = 4 +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"bn" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"bK" = ( -/obj/machinery/vending/cola/random, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bL" = ( -/obj/structure/chair/comfy/shuttle{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"bo" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bM" = ( -/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"bp" = ( +/obj/effect/turf_decal/bot_white, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/chair/office/light, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"bN" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/blood/gibs/old, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/clothing/head/centhat{ - desc = "There's a gouge through the top where something has clawed clean through it. Whoever was wearing it probably doesn't need a hat any more."; - name = "\improper damaged CentCom hat" +/obj/structure/rack, +/obj/item/storage/box/lights/bulbs, +/obj/item/stack/cable_coil/red{ + pixel_x = 2 }, -/obj/effect/decal/remains/human{ - desc = "They look like human remains, and have clearly been gnawed at." +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"bq" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"bO" = ( -/obj/item/phone{ +/obj/effect/turf_decal/bot_white, +/obj/structure/rack, +/obj/item/storage/belt/utility, +/obj/item/radio/off{ pixel_x = -3; pixel_y = 3 }, -/obj/item/cigbutt/cigarbutt{ - pixel_x = 5; - pixel_y = -1 - }, -/obj/structure/table, +/obj/item/radio/off, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bP" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bQ" = ( +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/crew) +"br" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/built{ - dir = 2 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"bR" = ( -/obj/structure/sign/departments/science{ - pixel_y = -32 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/crew) +"bs" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"bS" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/closet/emcloset/anchored, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"bT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/crew) +"bt" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/structure/table, -/obj/item/megaphone, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bU" = ( +/obj/machinery/door/airlock{ + name = "Restroom" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/abandoned/crew) +"bu" = ( +/obj/structure/sign/departments/restroom, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/crew) +"bv" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship{ - dir = 1; - lock_override = 1; - view_range = 15; - x_offset = -3; - y_offset = -7 - }, -/obj/machinery/light/built{ - dir = 2 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bV" = ( /obj/structure/table, +/obj/structure/bedsheetbin, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bW" = ( -/obj/structure/table, -/obj/item/radio/off{ - pixel_y = 6 - }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"bX" = ( -/obj/structure/sign/departments/botany, -/turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) -"bY" = ( -/obj/machinery/door/airlock/titanium{ - name = "hydroponics" +/obj/structure/cable, +/obj/machinery/power/apc{ + name = "Salvage Ship Crew Quarters APC"; + pixel_y = -24; + req_access = null }, +/turf/open/floor/plasteel/barber, +/area/shuttle/abandoned/crew) +"bw" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"bZ" = ( -/obj/machinery/door/airlock/titanium{ - name = "kitchen" - }, +/obj/machinery/washing_machine, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"ca" = ( -/obj/machinery/door/airlock/titanium{ - name = "laboratory" +/turf/open/floor/plasteel/barber, +/area/shuttle/abandoned/crew) +"bx" = ( +/obj/machinery/porta_turret/centcom_shuttle/weak{ + dir = 4 }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/crew) +"by" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"cb" = ( -/obj/structure/sign/departments/medbay/alt, -/turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) -"cc" = ( -/obj/machinery/door/airlock/titanium{ - name = "medbay"; - welded = 0 +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bz" = ( +/obj/machinery/light/built{ + dir = 8 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"cd" = ( -/obj/item/storage/bag/plants/portaseeder, -/obj/structure/table, -/obj/item/reagent_containers/spray/plantbgone{ - pixel_x = 13; - pixel_y = 5 +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 }, -/obj/item/reagent_containers/glass/bottle/nutrient/ez, -/obj/item/reagent_containers/glass/bottle/nutrient/ez, -/obj/item/reagent_containers/glass/bottle/nutrient/ez, -/obj/item/reagent_containers/glass/bottle/nutrient/rh{ - pixel_x = -2; +/obj/structure/closet/crate/internals, +/obj/item/tank/internals/oxygen{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/tank/internals/oxygen, +/obj/item/clothing/mask/breath{ + pixel_x = -3; pixel_y = 3 }, -/obj/effect/decal/cleanable/cobweb, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"bA" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"ce" = ( -/obj/machinery/biogenerator{ - idle_power_usage = 0; - use_power = 0 +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cf" = ( -/obj/machinery/vending/hydroseeds{ - use_power = 0 +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"bB" = ( +/obj/effect/turf_decal/arrows/white{ + dir = 4 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/small/built{ - dir = 1 +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"bC" = ( +/obj/machinery/light/built{ + dir = 4 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cg" = ( -/obj/machinery/processor, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/small/built{ - dir = 1 +/obj/machinery/airalarm/all_access{ + dir = 8; + pixel_x = 24 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"ch" = ( -/obj/structure/kitchenspike, -/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"bD" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/bar) +"bE" = ( +/obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"ci" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_x = -3; - pixel_y = 6 +/obj/machinery/door/airlock/public/glass{ + name = "Bar" }, -/obj/item/storage/box/donkpockets, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/bar) +"bF" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cj" = ( -/obj/effect/decal/cleanable/oil, +/obj/machinery/light/small/built, +/obj/structure/curtain, +/obj/machinery/shower{ + pixel_y = 15 + }, +/obj/item/soap, +/turf/open/floor/plasteel/freezer, +/area/shuttle/abandoned/crew) +"bG" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"ck" = ( -/obj/machinery/sleeper{ +/obj/structure/sink{ dir = 4; - use_power = 0 + pixel_x = 11 + }, +/obj/structure/toilet{ + dir = 1 + }, +/obj/structure/mirror{ + pixel_x = 28 }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/abandoned/crew) +"bH" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cl" = ( -/obj/structure/closet/crate/freezer, -/obj/item/reagent_containers/blood{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/reagent_containers/blood/OMinus, -/obj/item/reagent_containers/blood/random, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/xenoblood, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cm" = ( -/obj/structure/table/optable, -/obj/item/surgical_drapes, -/obj/item/storage/firstaid/regular, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/small/built{ - dir = 1 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cn" = ( -/obj/structure/table, -/obj/item/wrench, -/obj/item/crowbar, -/obj/item/clothing/suit/apron, -/obj/item/shovel/spade, -/obj/item/cultivator, +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/engine) +"bI" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/wirecutters, -/obj/item/plant_analyzer, -/obj/item/reagent_containers/glass/bucket, -/obj/machinery/light/small/built{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"co" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/engine) +"bJ" = ( +/obj/machinery/light/small{ + dir = 4 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"cp" = ( -/obj/machinery/smartfridge{ - use_power = 0 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) -"cq" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 +/obj/structure/rack, +/obj/item/storage/belt/utility, +/obj/item/radio/off{ + pixel_x = -3; + pixel_y = 3 }, +/obj/item/radio/off, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/engine) +"bK" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"cr" = ( -/obj/effect/decal/cleanable/egg_smudge, -/obj/effect/decal/cleanable/flour, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"cs" = ( -/obj/structure/table, -/obj/item/kitchen/rollingpin, -/obj/item/kitchen/knife, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"bL" = ( +/obj/effect/turf_decal/arrows/white{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/small/built{ - dir = 4 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"ct" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/small{ +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"bM" = ( +/obj/machinery/light/small/built{ dir = 8 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cu" = ( -/obj/structure/chair/office/light, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, +/obj/structure/table, +/obj/machinery/microwave, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"cv" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/light/small/built{ - dir = 4 +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cw" = ( -/obj/machinery/vending/wallmed{ - name = "Emergency NanoMed"; - pixel_x = -28; - use_power = 0 +/obj/item/storage/box/donkpockets, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) +"bN" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/trash/plate{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/trash/plate{ + pixel_x = -6 + }, +/obj/item/trash/plate{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/trash/plate{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/trash/plate{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/kitchen/fork{ + pixel_x = 12; + pixel_y = 3 + }, +/obj/item/kitchen/fork{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Salvage Ship Bar APC"; + pixel_y = 24; + req_access = null }, -/obj/machinery/iv_drip, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) +"bO" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) +"bP" = ( /obj/machinery/light/small/built{ - dir = 8 + dir = 4 }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"cx" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/cleanable/ash, -/obj/effect/decal/cleanable/xenoblood, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"cy" = ( -/obj/effect/decal/cleanable/xenoblood, +/obj/machinery/vending/coffee, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/decal/remains/xeno{ - desc = "A pile of remains that look vaguely humanoid. The skull is abnormally elongated, and there are burns through some of the other bones." +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"cz" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/bar) +"bQ" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/bridge) +"bR" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_bridge" }, -/obj/effect/decal/cleanable/xenoblood, -/obj/effect/decal/cleanable/xenoblood/xgibs/limb, +/turf/open/floor/plating, +/area/shuttle/abandoned/bridge) +"bS" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"cA" = ( -/obj/structure/shuttle/engine/propulsion/right{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) -"cB" = ( -/obj/machinery/hydroponics/constructable, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cC" = ( -/obj/machinery/hydroponics/constructable, -/obj/item/seeds/glowshroom, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/engine) +"bT" = ( +/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/mineral/titanium, -/area/shuttle/abandoned) -"cD" = ( /obj/structure/table, -/obj/machinery/reagentgrinder{ - pixel_y = 6 +/obj/item/stack/sheet/metal/twenty, +/obj/item/stack/sheet/glass{ + amount = 10 + }, +/obj/item/stack/rods/twentyfive, +/obj/item/wrench, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/engine) +"bU" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"bV" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 1 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cE" = ( -/obj/structure/table, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/storage/box/monkeycubes{ - pixel_y = 4 +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"bW" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/obj/item/storage/fancy/egg_box{ - pixel_y = 5 +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"bX" = ( +/obj/effect/turf_decal/box/white/corners, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cF" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 5 +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" }, -/obj/item/reagent_containers/food/condiment/enzyme{ - layer = 5 +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"bY" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/shuttle/abandoned/bar) +"bZ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/obj/item/reagent_containers/dropper, +/obj/structure/chair, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cG" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) +"ca" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cH" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 5; - pixel_y = 2 +/obj/structure/chair, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) +"cb" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/obj/item/reagent_containers/glass/beaker, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/syringe, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) +"cc" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cI" = ( -/obj/structure/table, -/obj/item/folder/white{ - pixel_x = 4; - pixel_y = -3 +/obj/machinery/airalarm/all_access{ + dir = 8; + pixel_x = 24 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/bar) +"cd" = ( /obj/structure/table, -/obj/item/hand_labeler, +/obj/machinery/light/small/built{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cK" = ( +/obj/item/paper_bin{ + pixel_x = -4 + }, +/obj/item/pen{ + pixel_x = -4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Salvage Ship Bridge APC"; + pixel_y = 24; + req_access = null + }, +/obj/item/camera{ + pixel_x = 12; + pixel_y = 6 + }, +/obj/item/storage/photo_album{ + pixel_x = 14 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bridge) +"ce" = ( /obj/structure/table, -/obj/item/defibrillator, +/obj/machinery/airalarm/all_access{ + pixel_y = 24 + }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cL" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 6 +/obj/item/folder/blue{ + pixel_x = 6; + pixel_y = 9 }, -/obj/item/reagent_containers/glass/bottle/charcoal{ - pixel_x = -3 +/obj/machinery/recharger, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bridge) +"cf" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 }, -/obj/item/reagent_containers/syringe, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cM" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/mask/surgical, +/obj/machinery/turretid{ + icon_state = "control_kill"; + lethal = 1; + locked = 0; + pixel_y = 28; + req_access = null + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 4 + }, +/area/shuttle/abandoned/bridge) +"cg" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/computer/shuttle/white_ship/pod/recall{ + dir = 8 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 9 + }, +/area/shuttle/abandoned/bridge) +"ch" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"ci" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/small/built{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cj" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"ck" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/engine) +"cl" = ( +/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" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/space_heater, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/engine) +"cm" = ( +/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" + }, +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"cn" = ( /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/item/clothing/suit/apron/surgical, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cN" = ( /obj/structure/table, -/obj/item/storage/backpack/duffelbag/med/surgery{ +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -8; + pixel_y = 10 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = -8; pixel_y = 4 }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"YT" = ( -/obj/machinery/door/airlock/titanium{ - name = "recovery shuttle external airlock" +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 1; + pixel_y = 8 + }, +/obj/item/reagent_containers/food/drinks/soda_cans/cola{ + pixel_x = 6 }, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) +"co" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) - -(1,1,1) = {" -aa -aa -aa -aa +/obj/structure/table, +/obj/item/storage/fancy/donut_box{ + pixel_x = -11; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = 6; + pixel_y = 14 + }, +/obj/item/reagent_containers/food/snacks/chocolatebar{ + pixel_x = 5; + pixel_y = -3 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) +"cp" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) +"cq" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/bar) +"cr" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/command{ + name = "Bridge" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/bridge) +"cs" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/bridge) +"ct" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/gibs/old, +/mob/living/simple_animal/hostile/syndicate/melee{ + environment_smash = 0 + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/bridge) +"cu" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/bridge) +"cv" = ( +/obj/machinery/computer/shuttle/white_ship{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/shuttle/abandoned/bridge) +"cw" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/engine) +"cx" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stack/cable_coil/red{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/engine) +"cy" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/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" + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"cz" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) +"cA" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) +"cB" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) +"cC" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/bar) +"cD" = ( +/obj/structure/table, +/obj/machinery/light/small/built{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/gps{ + gpstag = "NTREC1"; + pixel_x = -9; + pixel_y = 7 + }, +/obj/item/radio/off{ + pixel_x = 6; + pixel_y = 7 + }, +/obj/item/megaphone{ + pixel_x = -2; + pixel_y = -4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bridge) +"cE" = ( +/obj/structure/table, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/item/storage/toolbox/emergency{ + pixel_x = -12 + }, +/obj/item/wrench{ + pixel_x = -12 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bridge) +"cF" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/button/door{ + id = "whiteship_bridge"; + name = "Bridge Blast Door Control"; + pixel_x = 5; + pixel_y = -24 + }, +/obj/machinery/button/door{ + id = "whiteship_windows"; + name = "Windows Blast Door Control"; + pixel_x = -5; + pixel_y = -24 + }, +/turf/open/floor/plasteel/darkblue/corner, +/area/shuttle/abandoned/bridge) +"cG" = ( +/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship{ + designate_time = 100; + dir = 8; + view_range = 14; + x_offset = -4; + y_offset = -8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 10 + }, +/area/shuttle/abandoned/bridge) +"cH" = ( +/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" + }, +/obj/structure/closet/emcloset/anchored, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/engine) +"cI" = ( +/obj/machinery/light/small/built{ + dir = 4 + }, +/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" + }, +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/clothing/head/welding{ + pixel_x = -2; + pixel_y = 1 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/engine) +"cJ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Salvage Ship Cargo APC"; + pixel_x = -24; + req_access = null + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"cK" = ( +/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" + }, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"cL" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/reagent_containers/food/drinks/bottle/vodka{ + pixel_y = 12 + }, +/obj/item/reagent_containers/food/drinks/bottle/whiskey{ + pixel_x = 16; + pixel_y = 12 + }, +/obj/item/reagent_containers/food/drinks/bottle/gin{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/drinks/bottle/cognac{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) +"cM" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/bottle/wine{ + pixel_y = 12 + }, +/obj/item/reagent_containers/food/drinks/bottle/vermouth{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/drinks/bottle/tequila{ + pixel_x = 8; + pixel_y = 4 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) +"cN" = ( +/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" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/abandoned/bar) +"cO" = ( +/obj/machinery/light/small/built{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/vending/cigarette, +/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" + }, +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/bar) +"cP" = ( +/obj/machinery/light/built{ + dir = 8 + }, +/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" + }, +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"cQ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/crate/secure/weapon, +/obj/item/gun/energy/laser/retro, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"cR" = ( +/obj/effect/turf_decal/arrows/white{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"cS" = ( +/obj/machinery/light/built{ + dir = 4 + }, +/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" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"cT" = ( +/obj/machinery/door/firedoor, +/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" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Bar" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/bar) +"cU" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/processor, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/bar) +"cV" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/deepfryer, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/bar) +"cW" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/bar) +"cX" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/power/smes/engineering{ + charge = 1e+006 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/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" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cY" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stack/cable_coil/red, +/obj/item/stock_parts/cell/high, +/obj/item/multitool, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"cZ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/airalarm/all_access{ + pixel_y = 24 + }, +/obj/machinery/light/small/built{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"da" = ( +/obj/effect/turf_decal/bot_white, +/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" + }, +/obj/structure/rack, +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/obj/item/storage/bag/trash{ + pixel_x = 6 + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"db" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"dc" = ( +/obj/effect/turf_decal/box/white/corners, +/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/plasteel/dark, +/area/shuttle/abandoned/cargo) +"dd" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/mob/living/simple_animal/hostile/syndicate/melee{ + environment_smash = 0 + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"de" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"df" = ( +/obj/effect/turf_decal/bot_white, +/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" + }, +/obj/structure/rack, +/obj/item/analyzer, +/obj/item/wrench, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"dg" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/rack, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/multitool{ + pixel_x = 7; + pixel_y = -4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bar) +"dh" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/bar) +"di" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/closet/emcloset/anchored, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bar) +"dj" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/reagent_containers/food/condiment/flour{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/snacks/meat/slab/synthmeat{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/snacks/meat/slab/synthmeat, +/obj/item/reagent_containers/food/snacks/meat/slab/synthmeat{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/cafeteria, +/area/shuttle/abandoned/bar) +"dk" = ( +/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" + }, +/obj/machinery/light/small/built{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/cafeteria, +/area/shuttle/abandoned/bar) +"dl" = ( +/obj/structure/sign/departments/botany, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/bar) +"dm" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/hydroponics/constructable, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/green/side, +/area/shuttle/abandoned/bar) +"dn" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/hydroponics/constructable, +/obj/machinery/airalarm/all_access{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/green/side, +/area/shuttle/abandoned/bar) +"do" = ( +/obj/machinery/porta_turret/centcom_shuttle/weak{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned/bar) +"dp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"dq" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/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" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"dr" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"ds" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"dt" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"du" = ( +/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" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"dv" = ( +/obj/effect/turf_decal/arrows/white, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"dw" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/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/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/bar) +"dx" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/bar) +"dy" = ( +/obj/machinery/light/small/built, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/airalarm/all_access{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/stripes/white/line, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/bar) +"dz" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/bar) +"dA" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/glass{ + name = "Kitchen" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/bar) +"dB" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/shuttle/abandoned/bar) +"dC" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/cafeteria, +/area/shuttle/abandoned/bar) +"dD" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/door/airlock/glass{ + name = "Hydroponics" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/bar) +"dE" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/bar) +"dF" = ( +/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" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/green/corner{ + dir = 4 + }, +/area/shuttle/abandoned/bar) +"dG" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 + }, +/obj/machinery/vending/hydroseeds{ + use_power = 0 + }, +/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/plasteel/green/side{ + dir = 8 + }, +/area/shuttle/abandoned/bar) +"dH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"dI" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"dJ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + name = "Salvage Ship Engineering APC"; + pixel_y = -24; + req_access = null + }, +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal/twenty, +/obj/item/stack/sheet/glass{ + amount = 10 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 10 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"dK" = ( +/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" + }, +/obj/structure/closet/crate, +/obj/item/shovel, +/obj/item/pickaxe, +/obj/item/storage/box/lights/mixed, +/obj/item/mining_scanner, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"dL" = ( +/obj/effect/turf_decal/bot_white, +/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" + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"dM" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/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" + }, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"dN" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"dO" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/delivery/white, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/bar) +"dP" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/bar) +"dQ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -8; + pixel_y = 10 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/storage/box/drinkingglasses{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/shuttle/abandoned/bar) +"dR" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/effect/decal/cleanable/flour, +/turf/open/floor/plasteel/cafeteria, +/area/shuttle/abandoned/bar) +"dS" = ( +/obj/machinery/smartfridge, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned/bar) +"dT" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/bar) +"dU" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/green/corner, +/area/shuttle/abandoned/bar) +"dV" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/item/storage/bag/plants/portaseeder, +/obj/item/shovel/spade, +/obj/item/cultivator, +/obj/item/plant_analyzer, +/obj/item/reagent_containers/glass/bucket, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/shuttle/abandoned/bar) +"dW" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot, +/obj/item/wrench, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"dX" = ( +/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" + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/obj/machinery/computer/monitor{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"dY" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/button/door{ + id = "whiteship_starboard"; + name = "Starboard Blast Door Control"; + pixel_x = -24; + pixel_y = -5 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"dZ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/closet/crate/medical, +/obj/item/storage/firstaid/fire, +/obj/item/reagent_containers/glass/bottle/morphine, +/obj/item/reagent_containers/syringe, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"ea" = ( +/obj/effect/turf_decal/box/white/corners, +/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" + }, +/obj/machinery/button/door{ + id = "whiteship_starboard"; + name = "Starboard Blast Door Control"; + pixel_x = 24; + pixel_y = -5 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"eb" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + id = "whiteship_windows" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/bar) +"ec" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/obj/machinery/light/small/built{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/bar) +"ed" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_y = 6 + }, +/obj/item/kitchen/rollingpin{ + pixel_x = 8 + }, +/obj/item/kitchen/knife{ + pixel_x = 16 + }, +/obj/item/reagent_containers/food/condiment/sugar{ + pixel_x = -9; + pixel_y = 14 + }, +/obj/item/reagent_containers/food/condiment/enzyme{ + layer = 5; + pixel_x = -5; + pixel_y = 6 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/abandoned/bar) +"ee" = ( +/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" + }, +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/machinery/light/small/built{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/shuttle/abandoned/bar) +"ef" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/light/small/built{ + dir = 8 + }, +/obj/machinery/hydroponics/constructable, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/shuttle/abandoned/bar) +"eg" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/hydroponics/constructable, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 26 + }, +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/shuttle/abandoned/bar) +"eh" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/door/poddoor{ + id = "whiteship_starboard" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/cargo) +"ei" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/turf_decal/bot_white, +/obj/machinery/door/poddoor{ + id = "whiteship_starboard" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/cargo) +"ej" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned/bar) +"el" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/shuttle/abandoned/engine) +"em" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"fa" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/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" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"hv" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"nT" = ( +/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" + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) +"qY" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/mob/living/simple_animal/hostile/syndicate/melee{ + environment_smash = 0 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/abandoned/cargo) +"wM" = ( +/obj/effect/turf_decal/arrows/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/vault, +/area/shuttle/abandoned/cargo) + +(1,1,1) = {" aa ab -ab -YT -ab +ax +aL ab aa aa aa aa aa -"} -(2,1,1) = {" aa -ag -au -au -au -ac -bl -ap -bJ -ac -au -au -au -cA aa -"} -(3,1,1) = {" -ab -ab -av -av ab +ax +aL ab +aa +"} +(2,1,1) = {" ab -bt +ac +ay +ay +ac ab +aa +aa +aa +aa +aa ab +ac +ay +ay +ac ab -av -av +"} +(3,1,1) = {" +ac +ak +az +aM +bg +ac +aa ab +ch ab +aa +ac +cX +dp +dH +dW +ac "} (4,1,1) = {" -ab -ab -ab -ab -ab -bb -bm -ap -bK -bP -ab -ab -ab -ab -ab +ac +al +aA +aN +bh +ac +am +ac +ci +ac +am +ac +cY +el +dI +dX +ac "} (5,1,1) = {" ab -ah -ab -aI -aT -aB -aB -aB -aB +ac aB -ab -cd -cn -cB +aO +bi +ac +bH +ac +cj +ac +cH +ac +cZ +dr +dJ +ac ab "} (6,1,1) = {" +aa +am +aC +aP +bj +by +bI +bS +ck +cw +bI +by +bj +ds +dK +am +aa +"} +(7,1,1) = {" +aa ac -ai -aw -aJ -aU -bc -bn -bu -bp -aB -bX -ce -ap -cB ac +aQ +ac +ac +bJ +bT +cl +cx +cI +ac +ac +dt +ac +ac +aa "} -(7,1,1) = {" -ab -ab -ab -ab -ab -bd -bo -bv -bL -aB -bY -ap -aB -cC +(8,1,1) = {" +ad +an +aD +aR +bk +ac +ac +bU +bU +bU ac -"} -(8,1,1) = {" ac -aj -ax -aK -aV -be -bo -bw -bL -bQ -ab -cf -co -cB -ab +da +aR +dL +an +ad "} (9,1,1) = {" -ab -ak -ay -aL -aW -aB -bo -bx -bL -aB -ab -ab -cp -ab -ab +ae +ao +aE +aS +fa +bz +bK +bV +bW +cy +cJ +cP +db +du +bl +dY +eh "} (10,1,1) = {" -ab -ab -ab -ab -ab -aB -bp -by -bn -aB -bZ -aB -cq -cD -ab +ae +ap +ap +aT +qY +bA +ap +aF +bW +bm +ap +cQ +dc +aS +em +bA +ei "} (11,1,1) = {" -ab -al -az -aM -ab -bf -aB +af +aq ap -aB -aB -ab -cg +aU +bn +bB +bL +bW +bW +nT +wM +cR +dd +dv ap -cE -ac +ap +ei "} (12,1,1) = {" -ac -am -aA -aN -ab -ab -ab -bz -ab -ab -ab -ch -cr -cF -ac +ae +ar +ap +aS +bo +ap +ap +dq +bW +hv +ap +ap +de +aT +ap +dZ +eh "} (13,1,1) = {" -ac -am -ap -aB -aC +af +as +aF +aS +bm +bC ap -aB -aB -aB -aB -ab -ci -cs -cG -ab +bX +cm +bm +cK +cS +aF +aS +dM +ea +ei "} (14,1,1) = {" -ab +ad an -aB -aO -ab -aB -bn -bA -bn -aB -ab -ab -ab -ab -ab +aG +aS +bp +bD +bD +bY +bY +bY +bD +bD +df +aT +dN +an +ad "} (15,1,1) = {" -ab -ab -aC -ab -ab -bg -bp -bB -bp -bR -ab -cj -ct -cH -ab +aa +ai +ai +aV +ai +bD +bM +bZ +cn +cz +cL +bD +bD +dw +bD +bD +aa "} (16,1,1) = {" -ad -ao -aB -ap -aX -aB -be -bC -aB -aB +aa +aj +aH +aW +bq +bD +bN ca -aB -cu -cI -ac +co +cA +cM +bD +dg +dx +dO +eb +aa "} (17,1,1) = {" -ae -ap -aD -aP +ag +ai +ai aX -ap -aB -bD -ap -aB -ab -bn -cv -cJ -ab +br +bE +bO +cb +cp +cB +cN +cT +dh +dy +bD +bD +cW "} (18,1,1) = {" -ab -ab -aE -ab -ab -aB -bn -bE -bn -bS -ab -ab -ab -ab -ab +ah +at +aI +aY +bs +bD +bP +cc +cq +cC +cO +bD +di +dz +dP +ec +ej "} (19,1,1) = {" -ab -aq -aF -aQ -aY -aB -bn -bF -bp -aB -cb -ck -cw -cK -ab +ai +ai +ai +aZ +ai +ai +bQ +bQ +cr +bQ +bQ +bD +bD +dA +bD +bD +bD "} (20,1,1) = {" -ac -ar -aG -aG -aZ -aB -aB -ap -aB -aB -cc -ap -cx -cL -ac +ai +au +ai +ba +ai +bF +bQ +cd +cs +cD +bQ +cU +dj +dB +dQ +ed +bD "} (21,1,1) = {" -ac -as -aG -aR -ab -ab -ab +aj +av +aJ +bb +bt bG -ab -ab -ab -cl -cy -cM -ac +bQ +ce +ct +cE +bQ +cV +dk +dC +dR +ee +eb "} (22,1,1) = {" -ab -at -aH -aS -ab -bh -bq -aB -bn -bT -ab -cm -cz -cN -ab +ai +ai +ai +bc +bu +ai +bQ +cf +cu +cF +bQ +bD +dl +dD +dS +bD +bD "} (23,1,1) = {" -ab -ab -ac -ab -ab -bi -br -aB -bM -bU -ab -ab -ac -ab -ab +aj +aw +aK +bd +bv +ai +bR +cg +cv +cG +bR +bD +dm +dE +dT +ef +eb "} (24,1,1) = {" -aa -aa -aa -aa -ac -bj -aB -bH -bN -bV -ac -aa -aa -aa -aa +ai +au +ai +be +bw +ai +bR +bR +bR +bR +bR +bD +dn +dF +dU +eg +bD "} (25,1,1) = {" +ag +ai +ai +bf +ai +ag aa aa aa aa -ac -bk -bs -bI -bO -bW -ac -aa -aa -aa aa +cW +bD +dG +dV +bD +cW "} (26,1,1) = {" aa -aa -aa -aa -ba -ac -ac -ac -ac -ac -ba -aa -aa -aa -aa -"} -(27,1,1) = {" -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 +ag +ai +ai +bx aa aa aa @@ -2120,5 +3754,9 @@ aa aa aa aa +do +bD +bD +cW aa "} diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index 255464d406..21024e78f7 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -38,7 +38,7 @@ #define R_DEFAULT R_AUTOLOGIN -#define R_MAXPERMISSION 4096 //This holds the maximum value for a permission. It is used in iteration, so keep it updated. +#define R_EVERYTHING (1<<15)-1 //the sum of all other rank permissions, used for +EVERYTHING #define ADMIN_QUE(user) "(?)" #define ADMIN_FLW(user) "(FLW)" @@ -70,6 +70,7 @@ #define ADMIN_PUNISHMENT_FIREBALL "Fireball" #define ADMIN_PUNISHMENT_ROD "Immovable Rod" #define ADMIN_PUNISHMENT_SUPPLYPOD "Supply Pod" +#define ADMIN_PUNISHMENT_MAZING "Puzzle" #define AHELP_ACTIVE 1 #define AHELP_CLOSED 2 diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 97d4126e35..764e21105d 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -26,4 +26,9 @@ #define ERT_ENG "eng" #define ERT_LEADER "leader" #define DEATHSQUAD "ds" -#define DEATHSQUAD_LEADER "ds_leader" \ No newline at end of file +#define DEATHSQUAD_LEADER "ds_leader" + +//Shuttle hijacking +#define HIJACK_NEUTRAL 0 //Does not stop hijacking but itself won't hijack +#define HIJACK_HIJACKER 1 //Needs to be present for shuttle to be hijacked +#define HIJACK_PREVENT 2 //Prevents hijacking same way as non-antags \ No newline at end of file diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index d24429cb15..dc818ae029 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -100,8 +100,7 @@ #define FIRE_HELM_MIN_TEMP_PROTECT 60 //Cold protection for fire helmets #define FIRE_HELM_MAX_TEMP_PROTECT 30000 //for fire helmet quality items (red and white hardhats) -#define FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT 35000 //what max_heat_protection_temperature is set to for firesuit quality suits. MUST NOT BE 0. -#define FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT 35000 //for fire helmet quality items (red and white hardhats) +#define FIRE_IMMUNITY_MAX_TEMP_PROTECT 35000 //what max_heat_protection_temperature is set to for firesuit quality suits and helmets. MUST NOT BE 0. #define HELMET_MIN_TEMP_PROTECT 160 //For normal helmets #define HELMET_MAX_TEMP_PROTECT 600 //For normal helmets diff --git a/code/__DEFINES/bsql.dm b/code/__DEFINES/bsql.dm index cd15115c7d..e5a11f9a32 100644 --- a/code/__DEFINES/bsql.dm +++ b/code/__DEFINES/bsql.dm @@ -1,10 +1,12 @@ -//BSQL - DMAPI v1.2.0.1 +//BSQL - DMAPI +#define BSQL_VERSION "v1.3.0.0" //types of connections #define BSQL_CONNECTION_TYPE_MARIADB "MySql" #define BSQL_CONNECTION_TYPE_SQLSERVER "SqlServer" #define BSQL_DEFAULT_TIMEOUT 5 +#define BSQL_DEFAULT_THREAD_LIMIT 50 //Call this before rebooting or shutting down your world to clean up gracefully. This invalidates all active connection and operation datums /world/proc/BSQL_Shutdown() @@ -22,8 +24,9 @@ Create a new database connection, does not perform the actual connect connection_type: The BSQL connection_type to use asyncTimeout: The timeout to use for normal operations, 0 for infinite, defaults to BSQL_DEFAULT_TIMEOUT blockingTimeout: The timeout to use for blocking operations, must be less than or equal to asyncTimeout, 0 for infinite, defaults to asyncTimeout + threadLimit: The limit of additional threads BSQL will run simultaneously, defaults to BSQL_DEFAULT_THREAD_LIMIT */ -/datum/BSQL_Connection/New(connection_type, asyncTimeout, blockingTimeout) +/datum/BSQL_Connection/New(connection_type, asyncTimeout, blockingTimeout, threadLimit) return ..() /* diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index 183692fd8d..ecd068eff8 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -29,7 +29,7 @@ // /datum signals #define COMSIG_COMPONENT_ADDED "component_added" //when a component is added to a datum: (/datum/component) #define COMSIG_COMPONENT_REMOVING "component_removing" //before a component is removed from a datum because of RemoveComponent: (/datum/component) -#define COMSIG_PARENT_PREQDELETED "parent_preqdeleted" //before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation +#define COMSIG_PARENT_PREQDELETED "parent_preqdeleted" //before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation #define COMSIG_PARENT_QDELETED "parent_qdeleted" //after a datum's Destroy() is called: (force, qdel_hint), at this point none of the other components chose to interrupt qdel and Destroy has been called // /atom signals @@ -63,6 +63,13 @@ #define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" //from base of atom/setDir(): (old_dir, new_dir) #define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del" //from base of atom/handle_atom_del(): (atom/deleted) #define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity" //from base of atom/has_gravity(): (turf/location, list/forced_gravities) +#define COMSIG_ATOM_RAD_PROBE "atom_rad_probe" //from proc/get_rad_contents(): () + #define COMPONENT_BLOCK_RADIATION 1 +#define COMSIG_ATOM_RAD_CONTAMINATING "atom_rad_contam" //from base of datum/radiation_wave/radiate(): (strength) + #define COMPONENT_BLOCK_CONTAMINATION 1 +#define COMSIG_ATOM_RAD_WAVE_PASSING "atom_rad_wave_pass" //from base of datum/radiation_wave/check_obstructions(): (datum/radiation_wave, width) +#define COMSIG_ATOM_CANREACH "atom_can_reach" //from internal loop in atom/movable/proc/CanReach(): (list/next) + #define COMPONENT_BLOCK_REACH 1 ///////////////// #define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost" //from base of atom/attack_ghost(): (mob/dead/observer/ghost) #define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand" //from base of atom/attack_hand(): (mob/user) @@ -73,7 +80,7 @@ #define COMSIG_ENTER_AREA "enter_area" //from base of area/Entered(): (/area) #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) +#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_CTRL "ctrl_click" //from base of atom/CtrlClickOn(): (/mob) #define COMSIG_CLICK_ALT "alt_click" //from base of atom/AltClick(): (/mob) @@ -111,6 +118,7 @@ // /mob Signals #define COMSIG_MOB_RECEIVE_MAGIC "mob_receive_magic" //from base of mob/anti_magic_check(): (magic, holy, protection_sources) #define COMPONENT_BLOCK_MAGIC 1 +#define COMSIG_MOB_HUD_CREATED "mob_hud_created" //from base of mob/create_mob_hud(): () // /mob/living signals #define COMSIG_LIVING_RESIST "living_resist" //from base of mob/living/resist() (/mob/living) @@ -201,6 +209,10 @@ #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/action signals +#define COMSIG_ACTION_TRIGGER "action_trigger" //from base of datum/action/proc/Trigger(): (datum/action) + #define COMPONENT_ACTION_BLOCK_TRIGGER 1 + /*******Non-Signal Component Related Defines*******/ //Redirection component init flags diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index 3ed28c4693..6fff7e7017 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -71,6 +71,7 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define TESLA_MOB_STUN (1<<4) #define TESLA_DEFAULT_FLAGS ALL +#define TESLA_FUSION_FLAGS TESLA_OBJ_DAMAGE | TESLA_MOB_DAMAGE | TESLA_MOB_STUN //EMP protection #define EMP_PROTECT_SELF (1<<0) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 1584021089..15eaadb2f2 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -56,10 +56,9 @@ #define isslimeperson(A) (is_species(A, /datum/species/jelly/slime)) #define isluminescent(A) (is_species(A, /datum/species/jelly/luminescent)) #define iszombie(A) (is_species(A, /datum/species/zombie)) +#define ismoth(A) (is_species(A, /datum/species/moth)) #define ishumanbasic(A) (is_species(A, /datum/species/human)) - -//why arent catpeople a subspecies -#define iscatperson(A) (ishumanbasic(A) && ( A.dna.features["ears"] == "Cat" || A.dna.features["tail_human"] == "Cat") ) +#define iscatperson(A) (ishumanbasic(A) && istype(A.dna.species, /datum/species/human/felinid) ) //more carbon mobs #define ismonkey(A) (istype(A, /mob/living/carbon/monkey)) diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm index 1defe2bc39..be1e671756 100644 --- a/code/__DEFINES/maps.dm +++ b/code/__DEFINES/maps.dm @@ -37,6 +37,8 @@ require only minor tweaks. #define ZTRAIT_AWAY "Away Mission" #define ZTRAIT_SPACE_RUINS "Space Ruins" #define ZTRAIT_LAVA_RUINS "Lava Ruins" +// prevents certain turfs from being stripped by a singularity +#define ZTRAIT_PLANET "Planet" // number - bombcap is multiplied by this before being applied to bombs #define ZTRAIT_BOMBCAP_MULTIPLIER "Bombcap Multiplier" diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 72420e5ac8..8f274fcde4 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -451,6 +451,9 @@ GLOBAL_LIST_INIT(pda_styles, list(MONO, VT, ORBITRON, SHARE)) //Filters #define AMBIENT_OCCLUSION filter(type="drop_shadow", x=0, y=-2, size=4, border=4, color="#04080FAA") - #define STANDARD_GRAVITY 1 //Anything above this is high gravity, anything below no grav #define GRAVITY_DAMAGE_TRESHOLD 3 //Starting with this value gravity will start to damage mobs + +#define CAMERA_NO_GHOSTS 0 +#define CAMERA_SEE_GHOSTS_BASIC 1 +#define CAMERA_SEE_GHOSTS_ORBIT 2 diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm new file mode 100644 index 0000000000..d3585aab97 --- /dev/null +++ b/code/__DEFINES/movespeed_modification.dm @@ -0,0 +1,31 @@ +#define MOVESPEED_DATA_INDEX_PRIORITY 1 +#define MOVESPEED_DATA_INDEX_FLAGS 2 +#define MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN 3 + +#define MOVESPEED_DATA_INDEX_MAX 3 + +//flags +#define IGNORE_NOSLOW (1 << 0) + +//ids + +#define MOVESPEED_ID_MOB_WALK_RUN_CONFIG_SPEED "MOB_WALK_RUN" +#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_LIVING_TURF_SPEEDMOD "LIVING_TURF_SPEEDMOD" + +#define MOVESPEED_ID_CARBON_SOFTCRIT "CARBON_SOFTCRIT" +#define MOVESPEED_ID_CARBON_OLDSPEED "CARBON_DEPRECATED_SPEED" + +#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_SIMPLEMOB_VARSPEED "SIMPLEMOB_VARSPEED_MODIFIER" +#define MOVESPEED_ID_ADMIN_VAREDIT "ADMIN_VAREDIT_MODIFIER" + +#define MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD "PAI_SPACEWALK_MODIFIER" \ No newline at end of file diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index c2ffd33196..0317b5ba7f 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -1,7 +1,7 @@ //Update this whenever the db schema changes //make sure you add an update to the schema_version stable in the db changelog #define DB_MAJOR_VERSION 4 -#define DB_MINOR_VERSION 4 +#define DB_MINOR_VERSION 5 //Timing subsystem //Don't run if there is an identical unique timer active diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 378d30ba52..b994d9cc84 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -14,7 +14,8 @@ #define TRAIT_IGNORESLOWDOWN "ignoreslow" #define TRAIT_GOTTAGOFAST "fast" #define TRAIT_GOTTAGOREALLYFAST "2fast" -#define TRAIT_FAKEDEATH "fakedeath" +#define TRAIT_DEATHCOMA "deathcoma" //Causes death-like unconsciousness +#define TRAIT_FAKEDEATH "fakedeath" //Makes the owner appear as dead to most forms of medical examination #define TRAIT_DISFIGURED "disfigured" #define TRAIT_XENO_HOST "xeno_host" //Tracks whether we're gonna be a baby alien's mummy. #define TRAIT_STUNIMMUNE "stun_immunity" diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index b25d1e58d5..8ada0c20b8 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -20,6 +20,7 @@ #define LAZYLEN(L) length(L) #define LAZYCLEARLIST(L) if(L) L.Cut() #define SANITIZE_LIST(L) ( islist(L) ? L : list() ) +#define reverseList(L) reverseRange(L.Copy()) // binary search sorted insert // IN: Object to be inserted diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index 92f7b21bb7..9664f786ef 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -44,6 +44,7 @@ WRITE_LOG(GLOB.world_game_log, "ADMINPRIVATE: [text]") /proc/log_adminsay(text) + GLOB.admin_log.Add(text) if (CONFIG_GET(flag/log_adminchat)) WRITE_LOG(GLOB.world_game_log, "ADMINPRIVATE: ASAY: [text]") @@ -103,6 +104,10 @@ //reusing the PDA option because I really don't think news comments are worth a config option WRITE_LOG(GLOB.world_pda_log, "COMMENT: [text]") +/proc/log_telecomms(text) + if (CONFIG_GET(flag/log_telecomms)) + WRITE_LOG(GLOB.world_telecomms_log, "TCOMMS: [text]") + /proc/log_chat(text) if (CONFIG_GET(flag/log_pda)) //same thing here diff --git a/code/__HELPERS/areas.dm b/code/__HELPERS/areas.dm index 3e9a26b261..f05bf6f3e1 100644 --- a/code/__HELPERS/areas.dm +++ b/code/__HELPERS/areas.dm @@ -3,7 +3,8 @@ // Gets an atmos isolated contained space // Returns an associative list of turf|dirs pairs // The dirs are connected turfs in the same space -// break_if_found is a typecache of turf types to return false if found +// break_if_found is a typecache of turf/area types to return false if found +// Please keep this proc type agnostic. If you need to restrict it do it elsewhere or add an arg. /proc/detect_room(turf/origin, list/break_if_found) if(origin.blocks_air) return list(origin) @@ -13,10 +14,6 @@ var/list/found_turfs = list(origin) while(found_turfs.len) var/turf/sourceT = found_turfs[1] - if(break_if_found[sourceT.type]) - return FALSE - if (istype(sourceT.loc, /area/shuttle)) - return FALSE found_turfs.Cut(1, 2) var/dir_flags = checked_turfs[sourceT] for(var/dir in GLOB.alldirs) @@ -29,18 +26,24 @@ checked_turfs[checkT] |= turn(dir, 180) .[sourceT] |= dir .[checkT] |= turn(dir, 180) + if(break_if_found[checkT.type] || break_if_found[checkT.loc.type]) + return FALSE var/static/list/cardinal_cache = list("[NORTH]"=TRUE, "[EAST]"=TRUE, "[SOUTH]"=TRUE, "[WEST]"=TRUE) if(!cardinal_cache["[dir]"] || checkT.blocks_air || !CANATMOSPASS(sourceT, checkT)) continue found_turfs += checkT // Since checkT is connected, add it to the list to be processed /proc/create_area(mob/creator) - var/static/blacklisted_turfs = typecacheof(/turf/open/space) + // Passed into the above proc as list/break_if_found + var/static/area_or_turf_fail_types = typecacheof(list( + /turf/open/space, + /area/shuttle, + )) + // Ignore these areas and dont let people expand them. They can expand into them though var/static/blacklisted_areas = typecacheof(list( /area/space, - /area/shuttle, )) - var/list/turfs = detect_room(get_turf(creator), blacklisted_turfs) + var/list/turfs = detect_room(get_turf(creator), area_or_turf_fail_types) if(!turfs) to_chat(creator, "The new area must be completely airtight and not a part of a shuttle.") return @@ -50,7 +53,7 @@ var/list/areas = list("New Area" = /area) for(var/i in 1 to turfs.len) var/area/place = get_area(turfs[i]) - if(blacklisted_areas[place.type] || istype(place, /area/shuttle)) + if(blacklisted_areas[place.type]) continue if(!place.requires_power || place.noteleport || place.hidden) continue // No expanding powerless rooms etc diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 13f415823c..c590c844eb 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -350,7 +350,7 @@ /proc/flick_overlay(image/I, list/show_to, duration) for(var/client/C in show_to) C.images += I - addtimer(CALLBACK(GLOBAL_PROC, /.proc/remove_images_from_clients, I, show_to), duration, TIMER_CLIENT_TIME) + addtimer(CALLBACK(GLOBAL_PROC, /proc/remove_images_from_clients, I, show_to), duration, TIMER_CLIENT_TIME) /proc/flick_overlay_view(image/I, atom/target, duration) //wrapper for the above, flicks to everyone who can see the target atom var/list/viewing = list() diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index aed2e9c749..d2cb3baa6a 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -1027,15 +1027,17 @@ GLOBAL_LIST_EMPTY(friendly_animal_types) return 0 //For creating consistent icons for human looking simple animals -/proc/get_flat_human_icon(icon_id, datum/job/J, datum/preferences/prefs, dummy_key, showDirs = GLOB.cardinals) +/proc/get_flat_human_icon(icon_id, datum/job/J, datum/preferences/prefs, dummy_key, showDirs = GLOB.cardinals, outfit_override = null) var/static/list/humanoid_icon_cache = list() if(!icon_id || !humanoid_icon_cache[icon_id]) var/mob/living/carbon/human/dummy/body = generate_or_wait_for_human_dummy(dummy_key) if(prefs) - prefs.copy_to(body) + prefs.copy_to(body,TRUE,FALSE) if(J) - J.equip(body, TRUE, FALSE) + J.equip(body, TRUE, FALSE, outfit_override = outfit_override) + else if (outfit_override) + body.equipOutfit(outfit_override,visualsOnly = TRUE) var/icon/out_icon = icon('icons/effects/effects.dmi', "nothing") diff --git a/code/__HELPERS/level_traits.dm b/code/__HELPERS/level_traits.dm index b73a0aa83d..55ee069321 100644 --- a/code/__HELPERS/level_traits.dm +++ b/code/__HELPERS/level_traits.dm @@ -14,4 +14,4 @@ #define is_away_level(z) SSmapping.level_trait(z, ZTRAIT_AWAY) // If true, the singularity cannot strip away asteroid turf on this Z -#define is_planet_level(z) (GLOB.z_is_planet["z"]) +#define is_planet_level(z) SSmapping.level_trait(z, ZTRAIT_PLANET) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 24b6233c59..30fcf6b151 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -192,15 +192,15 @@ Proc for attack log creation, because really why not var/starget = "NON-EXISTENT SUBJECT" if(target) - if(is_mob_target && target.ckey) - starget = "[target.name]([target.ckey])" + if(is_mob_target && target.key) + starget = "[target.name]([target.key])" else starget = "[target.name]" var/ssource = "NON-EXISTENT USER" //How!? if(user) - if(is_mob_user && user.ckey) - ssource = "[user.name]([user.ckey])" + if(is_mob_user && user.key) + ssource = "[user.name]([user.key])" else ssource = "[user.name]" diff --git a/code/__HELPERS/priority_announce.dm b/code/__HELPERS/priority_announce.dm index bbaf7b275d..8819eb4d04 100644 --- a/code/__HELPERS/priority_announce.dm +++ b/code/__HELPERS/priority_announce.dm @@ -19,7 +19,7 @@ announcement += "

[sender_override]

" if (title && length(title) > 0) announcement += "

[html_encode(title)]

" - + if(!sender_override) if(title == "") GLOB.news_network.SubmitArticle(text, "Central Command Update", "Station Announcements", null) @@ -46,7 +46,7 @@ var/datum/comm_message/M = new M.title = title M.content = text - + SScommunications.send_message(M) /proc/minor_announce(message, title = "Attention:", alert) diff --git a/code/__HELPERS/qdel.dm b/code/__HELPERS/qdel.dm new file mode 100644 index 0000000000..9bd0d4c95f --- /dev/null +++ b/code/__HELPERS/qdel.dm @@ -0,0 +1,10 @@ +#define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, item), time, TIMER_STOPPABLE) +#define QDEL_IN_CLIENT_TIME(item, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, item), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME) +#define QDEL_NULL(item) qdel(item); item = null +#define QDEL_LIST(L) if(L) { for(var/I in L) qdel(I); L.Cut(); } +#define QDEL_LIST_IN(L, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/______qdel_list_wrapper, L), time, TIMER_STOPPABLE) +#define QDEL_LIST_ASSOC(L) if(L) { for(var/I in L) { qdel(L[I]); qdel(I); } L.Cut(); } +#define QDEL_LIST_ASSOC_VAL(L) if(L) { for(var/I in L) qdel(L[I]); L.Cut(); } + +/proc/______qdel_list_wrapper(list/L) //the underscores are to encourage people not to use this directly. + QDEL_LIST(L) diff --git a/code/__HELPERS/radiation.dm b/code/__HELPERS/radiation.dm index 93dcdb4b0e..a09d2fab00 100644 --- a/code/__HELPERS/radiation.dm +++ b/code/__HELPERS/radiation.dm @@ -1,26 +1,24 @@ // A special GetAllContents that doesn't search past things with rad insulation -// The protection var only protects the things inside from being affected. -// The protecting object itself will get returned still. +// Components which return COMPONENT_BLOCK_RADIATION prevent further searching into that object's contents. The object itself will get returned still. // The ignore list makes those objects never return at all /proc/get_rad_contents(atom/location) + var/static/list/ignored_things = typecacheof(list( + /mob/dead, + /mob/camera, + /obj/effect, + /obj/docking_port, + /atom/movable/lighting_object, + /obj/item/projectile, + )) var/list/processing_list = list(location) . = list() while(processing_list.len) - var/static/list/ignored_things = typecacheof(list( - /mob/dead, - /mob/camera, - /obj/effect, - /obj/docking_port, - /atom/movable/lighting_object, - /obj/item/projectile - )) var/atom/thing = processing_list[1] processing_list -= thing if(ignored_things[thing.type]) continue . += thing - var/datum/component/rad_insulation/insulation = thing.GetComponent(/datum/component/rad_insulation) - if(insulation && insulation.protects) + if(SEND_SIGNAL(thing, COMSIG_ATOM_RAD_PROBE) & COMPONENT_BLOCK_RADIATION) continue processing_list += thing.contents diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index e86c57ac24..3e1c2b778d 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -194,7 +194,7 @@ send2irc("Server", "Round just ended.") - if(length(CONFIG_GET(keyed_string_list/cross_server))) + if(length(CONFIG_GET(keyed_list/cross_server))) send_news_report() CHECK_TICK @@ -271,6 +271,10 @@ var/list/parts = list() var/station_evacuated = EMERGENCY_ESCAPED_OR_ENDGAMED + if(GLOB.round_id) + var/statspage = CONFIG_GET(string/roundstatsurl) + var/info = statspage ? "[GLOB.round_id]" : GLOB.round_id + parts += "[GLOB.TAB]Round ID: [info]" parts += "[GLOB.TAB]Shift Duration: [DisplayTimeText(world.time - SSticker.round_start_time)]" parts += "[GLOB.TAB]Station Integrity: [mode.station_was_nuked ? "Destroyed" : "[popcount["station_integrity"]]%"]" var/total_players = GLOB.joined_player_list.len @@ -543,3 +547,28 @@ file_data["admins"]["[i]"] = A.rank.name fdel(json_file) WRITE_FILE(json_file, json_encode(file_data)) + +/datum/controller/subsystem/ticker/proc/update_everything_flag_in_db() + for(var/datum/admin_rank/R in GLOB.admin_ranks) + var/list/flags = list() + if(R.include_rights == R_EVERYTHING) + flags += "flags" + if(R.exclude_rights == R_EVERYTHING) + flags += "exclude_flags" + if(R.can_edit_rights == R_EVERYTHING) + flags += "can_edit_flags" + if(!flags.len) + continue + var/flags_to_check = flags.Join(" != [R_EVERYTHING] AND ") + " != [R_EVERYTHING]" + var/datum/DBQuery/query_check_everything_ranks = SSdbcore.NewQuery("SELECT flags, exclude_flags, can_edit_flags FROM [format_table_name("admin_ranks")] WHERE rank = '[R.name]' AND ([flags_to_check])") + if(!query_check_everything_ranks.Execute()) + qdel(query_check_everything_ranks) + return + if(query_check_everything_ranks.NextRow()) //no row is returned if the rank already has the correct flag value + var/flags_to_update = flags.Join(" = [R_EVERYTHING], ") + " = [R_EVERYTHING]" + var/datum/DBQuery/query_update_everything_ranks = SSdbcore.NewQuery("UPDATE [format_table_name("admin_ranks")] SET [flags_to_update] WHERE rank = '[R.name]'") + if(!query_update_everything_ranks.Execute()) + qdel(query_update_everything_ranks) + return + qdel(query_update_everything_ranks) + qdel(query_check_everything_ranks) diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index 85638152e2..d6942f1c40 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -448,6 +448,17 @@ else . = max(0, min(255, 138.5177312231 * log(temp - 10) - 305.0447927307)) +/proc/fusionpower2text(power) //used when displaying fusion power on analyzers + switch(power) + if(0 to 5) + return "low" + if(5 to 20) + return "mid" + if(20 to 50) + return "high" + if(50 to INFINITY) + return "super" + /proc/color2hex(color) //web colors if(!color) return "#000000" diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 273e1cf1b7..f7aac6123e 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1293,19 +1293,6 @@ GLOBAL_REAL_VAR(list/stack_trace_storage) #define RANDOM_COLOUR (rgb(rand(0,255),rand(0,255),rand(0,255))) -#define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, item), time, TIMER_STOPPABLE) -#define QDEL_IN_CLIENT_TIME(item, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, item), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME) -#define QDEL_NULL(item) qdel(item); item = null -#define QDEL_LIST(L) if(L) { for(var/I in L) qdel(I); L.Cut(); } -#define QDEL_LIST_IN(L, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/______qdel_list_wrapper, L), time, TIMER_STOPPABLE) -#define QDEL_LIST_ASSOC(L) if(L) { for(var/I in L) { qdel(L[I]); qdel(I); } L.Cut(); } -#define QDEL_LIST_ASSOC_VAL(L) if(L) { for(var/I in L) qdel(L[I]); L.Cut(); } - -/proc/______qdel_list_wrapper(list/L) //the underscores are to encourage people not to use this directly. - QDEL_LIST(L) - - - /proc/random_nukecode() var/val = rand(0, 99999) var/str = "[val]" diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index 2ad35a6b1b..021ea298a8 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -87,6 +87,9 @@ GLOBAL_LIST_INIT(bitfields, list( "INTERACT_MACHINE_REQUIRES_SILICON" = INTERACT_MACHINE_REQUIRES_SILICON, "INTERACT_MACHINE_SET_MACHINE" = INTERACT_MACHINE_SET_MACHINE ), + "interaction_flags_item" = list( + "INTERACT_ITEM_ATTACK_HAND_PICKUP" = INTERACT_ITEM_ATTACK_HAND_PICKUP, + ), "pass_flags" = list( "PASSTABLE" = PASSTABLE, "PASSGLASS" = PASSGLASS, diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index b39c0cd06c..a06e033246 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -37,6 +37,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/clothing/mask/gas = 15, /obj/item/clothing/suit/hazardvest = 1, /obj/item/clothing/under/rank/vice = 1, + /obj/item/clothing/suit/hooded/flashsuit = 2, /obj/item/assembly/prox_sensor = 4, /obj/item/assembly/timer = 3, /obj/item/flashlight = 4, diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm index 1010aa7676..9cea3d1a71 100644 --- a/code/_globalvars/lists/mobs.dm +++ b/code/_globalvars/lists/mobs.dm @@ -34,3 +34,23 @@ GLOBAL_LIST_EMPTY(all_languages) GLOBAL_LIST_EMPTY(sentient_disease_instances) GLOBAL_LIST_EMPTY(latejoin_ai_cores) + +GLOBAL_LIST_EMPTY(mob_config_movespeed_type_lookup) + +/proc/update_config_movespeed_type_lookup(update_mobs = TRUE) + var/list/mob_types = list() + var/list/entry_value = CONFIG_GET(keyed_list/multiplicative_movespeed) + for(var/path in entry_value) + var/value = entry_value[path] + if(!value) + continue + for(var/subpath in typesof(path)) + mob_types[subpath] = value + GLOB.mob_config_movespeed_type_lookup = mob_types + if(update_mobs) + update_mob_config_movespeeds() + +/proc/update_mob_config_movespeeds() + for(var/i in GLOB.mob_list) + var/mob/M = i + M.update_config_movespeed() diff --git a/code/_globalvars/logging.dm b/code/_globalvars/logging.dm index 2951ddf165..bd7f4afe62 100644 --- a/code/_globalvars/logging.dm +++ b/code/_globalvars/logging.dm @@ -18,6 +18,8 @@ GLOBAL_VAR(sql_error_log) GLOBAL_PROTECT(sql_error_log) GLOBAL_VAR(world_pda_log) GLOBAL_PROTECT(world_pda_log) +GLOBAL_VAR(world_telecomms_log) +GLOBAL_PROTECT(world_telecomms_log) GLOBAL_VAR(world_manifest_log) GLOBAL_PROTECT(world_manifest_log) GLOBAL_VAR(query_debug_log) @@ -44,3 +46,13 @@ GLOBAL_LIST_EMPTY(adminlog) GLOBAL_PROTECT(adminlog) GLOBAL_LIST_EMPTY(active_turfs_startlist) + +/////Picture logging +GLOBAL_VAR(picture_log_directory) +GLOBAL_PROTECT(picture_log_directory) + +GLOBAL_VAR_INIT(picture_logging_id, 1) +GLOBAL_PROTECT(picture_logging_id) +GLOBAL_VAR(picture_logging_prefix) +GLOBAL_PROTECT(picture_logging_prefix) +///// diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 582ad084bb..cc7f1b11d0 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -40,7 +40,7 @@ */ /atom/Click(location,control,params) if(flags_1 & INITIALIZED_1) - SEND_SIGNAL(src, COMSIG_CLICK, location, control, params) + SEND_SIGNAL(src, COMSIG_CLICK, location, control, params, usr) usr.ClickOn(src, params) /atom/DblClick(location,control,params) @@ -72,6 +72,9 @@ if(check_click_intercept(params,A)) return + if(notransform) + return + var/list/modifiers = params2list(params) if(modifiers["shift"] && modifiers["middle"]) ShiftMiddleClickOn(A) @@ -192,17 +195,8 @@ if (!target.loc) continue - GET_COMPONENT_FROM(storage, /datum/component/storage, target.loc) - if (storage) - var/datum/component/storage/concrete/master = storage.master() - if (master) - next += master.parent - for(var/S in master.slaves) - var/datum/component/storage/slave = S - next += slave.parent - else - next += target.loc - else + + if(!(SEND_SIGNAL(target.loc, COMSIG_ATOM_CANREACH, next) & COMPONENT_BLOCK_REACH)) next += target.loc checking = next diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm index 2bb514d008..49bdd3f3c0 100644 --- a/code/_onclick/hud/ai.dm +++ b/code/_onclick/hud/ai.dm @@ -135,10 +135,10 @@ return if(isAI(usr)) var/mob/living/silicon/ai/AI = usr - AI.aicamera.toggle_camera_mode() + AI.aicamera.toggle_camera_mode(usr) else if(iscyborg(usr)) var/mob/living/silicon/robot/R = usr - R.aicamera.toggle_camera_mode() + R.aicamera.toggle_camera_mode(usr) /obj/screen/ai/image_view name = "View Images" @@ -149,10 +149,10 @@ return if(isAI(usr)) var/mob/living/silicon/ai/AI = usr - AI.aicamera.viewpictures() + AI.aicamera.viewpictures(usr) else if(iscyborg(usr)) var/mob/living/silicon/robot/R = usr - R.aicamera.viewpictures() + R.aicamera.viewpictures(usr) /obj/screen/ai/sensors name = "Sensor Augmentation" @@ -281,7 +281,3 @@ using = new /obj/screen/ai/add_multicam() using.screen_loc = ui_ai_add_multicam static_inventory += using - -/mob/living/silicon/ai/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/ai(src) diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm index 47450fce8a..92b0914942 100644 --- a/code/_onclick/hud/alien.dm +++ b/code/_onclick/hud/alien.dm @@ -121,7 +121,3 @@ for(var/obj/item/I in H.held_items) I.screen_loc = null H.client.screen -= I - -/mob/living/carbon/alien/humanoid/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/alien(src) diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm index 4cb2506d74..8281fe8e99 100644 --- a/code/_onclick/hud/alien_larva.dm +++ b/code/_onclick/hud/alien_larva.dm @@ -28,7 +28,3 @@ zone_select = new /obj/screen/zone_sel/alien() zone_select.update_icon(mymob) static_inventory += zone_select - -/mob/living/carbon/alien/larva/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/larva(src) diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm index d6dc5f8a0a..ab8bc459ae 100644 --- a/code/_onclick/hud/blob_overmind.dm +++ b/code/_onclick/hud/blob_overmind.dm @@ -175,10 +175,3 @@ using = new /obj/screen/blob/RelocateCore() using.screen_loc = ui_storage2 static_inventory += using - - -/mob/camera/blob/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/blob_overmind(src) - - diff --git a/code/_onclick/hud/blobbernauthud.dm b/code/_onclick/hud/blobbernauthud.dm index caed7cba6c..17d3b11a72 100644 --- a/code/_onclick/hud/blobbernauthud.dm +++ b/code/_onclick/hud/blobbernauthud.dm @@ -7,7 +7,3 @@ healths = new /obj/screen/healths/blob/naut() infodisplay += healths - -/mob/living/simple_animal/hostile/blob/blobbernaut/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/blobbernaut(src) diff --git a/code/_onclick/hud/constructs.dm b/code/_onclick/hud/constructs.dm index d4f6b90ca6..182495c236 100644 --- a/code/_onclick/hud/constructs.dm +++ b/code/_onclick/hud/constructs.dm @@ -11,7 +11,3 @@ healths = new /obj/screen/healths/construct() infodisplay += healths - -/mob/living/simple_animal/hostile/construct/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/constructs(src) diff --git a/code/_onclick/hud/devil.dm b/code/_onclick/hud/devil.dm index b30eeefc1b..40fdc37da3 100644 --- a/code/_onclick/hud/devil.dm +++ b/code/_onclick/hud/devil.dm @@ -59,7 +59,3 @@ for(var/obj/item/I in D.held_items) I.screen_loc = null D.client.screen -= I - -/mob/living/carbon/true_devil/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/devil(src) diff --git a/code/_onclick/hud/generic_dextrous.dm b/code/_onclick/hud/generic_dextrous.dm index c42714ba7c..131b510f9b 100644 --- a/code/_onclick/hud/generic_dextrous.dm +++ b/code/_onclick/hud/generic_dextrous.dm @@ -76,8 +76,6 @@ //Dextrous simple mobs can use hands! /mob/living/simple_animal/create_mob_hud() - if(client && !hud_used) - if(dextrous) - hud_used = new dextrous_hud_type(src) - else - ..() + if(dextrous) + hud_type = dextrous_hud_type + return ..() diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm index ea78da5952..2b70392b39 100644 --- a/code/_onclick/hud/ghost.dm +++ b/code/_onclick/hud/ghost.dm @@ -87,7 +87,3 @@ screenmob.client.screen -= static_inventory else screenmob.client.screen += static_inventory - -/mob/dead/observer/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/ghost(src) diff --git a/code/_onclick/hud/guardian.dm b/code/_onclick/hud/guardian.dm index 687d47c017..a66558950a 100644 --- a/code/_onclick/hud/guardian.dm +++ b/code/_onclick/hud/guardian.dm @@ -26,14 +26,6 @@ using.screen_loc = ui_back static_inventory += using - -/mob/living/simple_animal/hostile/guardian/create_mob_hud() - if(client && !hud_used) - if(dextrous) - ..() - else - hud_used = new /datum/hud/guardian(src) - /datum/hud/dextrous/guardian/New(mob/living/simple_animal/hostile/guardian/owner) //for a dextrous guardian ..() var/obj/screen/using diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index ea967c1d15..1d1836716b 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -57,7 +57,6 @@ GLOBAL_LIST_INIT(available_ui_styles, list( var/obj/screen/healths var/obj/screen/healthdoll var/obj/screen/internals - var/obj/screen/mood // subtypes can override this to force a specific UI style var/ui_style @@ -102,7 +101,6 @@ GLOBAL_LIST_INIT(available_ui_styles, list( healths = null healthdoll = null internals = null - mood = null lingchemdisplay = null devilsouldisplay = null lingstingdisplay = null @@ -116,10 +114,15 @@ GLOBAL_LIST_INIT(available_ui_styles, list( return ..() +/mob + var/hud_type = /datum/hud + /mob/proc/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud(src) - update_sight() + if(!client || hud_used) + return + hud_used = new hud_type(src) + update_sight() + SEND_SIGNAL(src, COMSIG_MOB_HUD_CREATED) //Version denotes which style should be displayed. blank or 0 means "next version" /datum/hud/proc/show_hud(version = 0, mob/viewmob) diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 80b8b15b1c..30cb719d51 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -80,11 +80,6 @@ icon_state = "power_display" screen_loc = ui_lingchemdisplay -/mob/living/carbon/human/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/human(src) - - /datum/hud/human/New(mob/living/carbon/human/owner) ..() owner.overlay_fullscreen("see_through_darkness", /obj/screen/fullscreen/see_through_darkness) @@ -288,10 +283,6 @@ healthdoll = new /obj/screen/healthdoll() infodisplay += healthdoll - if(!CONFIG_GET(flag/disable_human_mood)) - mood = new /obj/screen/mood() - infodisplay += mood - pull_icon = new /obj/screen/pull() pull_icon.icon = ui_style pull_icon.update_icon(mymob) diff --git a/code/_onclick/hud/monkey.dm b/code/_onclick/hud/monkey.dm index 134fb28c54..d3be91abe9 100644 --- a/code/_onclick/hud/monkey.dm +++ b/code/_onclick/hud/monkey.dm @@ -149,7 +149,3 @@ for(var/obj/item/I in M.held_items) I.screen_loc = null M.client.screen -= I - -/mob/living/carbon/monkey/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/monkey(src) diff --git a/code/_onclick/hud/revenanthud.dm b/code/_onclick/hud/revenanthud.dm index 492e9e67b4..bc8a2bde7d 100644 --- a/code/_onclick/hud/revenanthud.dm +++ b/code/_onclick/hud/revenanthud.dm @@ -4,7 +4,3 @@ healths = new /obj/screen/healths/revenant() infodisplay += healths - -/mob/living/simple_animal/revenant/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/revenant(src) diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm index 7cc51fade1..54a81efddd 100644 --- a/code/_onclick/hud/robot.dm +++ b/code/_onclick/hud/robot.dm @@ -245,11 +245,6 @@ R.shown_robot_modules = 0 screenmob.client.screen -= R.robot_modules_background -/mob/living/silicon/robot/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/robot(src) - - /datum/hud/robot/persistent_inventory_update(mob/viewer) if(!mymob) return diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 8c2e00029b..9d65cddda4 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -310,17 +310,21 @@ /obj/screen/mov_intent/Click() toggle(usr) -/obj/screen/mov_intent/proc/toggle(mob/user) - if(isobserver(user)) +/obj/screen/mov_intent/update_icon(mob/user) + if(!user && hud) + user = hud.mymob + if(!user) return switch(user.m_intent) - if("run") - user.m_intent = MOVE_INTENT_WALK + if(MOVE_INTENT_WALK) icon_state = "walking" - if("walk") - user.m_intent = MOVE_INTENT_RUN + if(MOVE_INTENT_RUN) icon_state = "running" - user.update_icons() + +/obj/screen/mov_intent/proc/toggle(mob/user) + if(isobserver(user)) + return + user.toggle_move_intent(user) /obj/screen/pull name = "stop pulling" @@ -580,11 +584,6 @@ icon_state = "mood5" screen_loc = ui_mood -/obj/screen/mood/Click() - GET_COMPONENT_FROM(mood, /datum/component/mood, usr) - if(mood) - mood.print_mood() - /obj/screen/splash icon = 'icons/blank_title.png' icon_state = "" diff --git a/code/_onclick/hud/swarmer.dm b/code/_onclick/hud/swarmer.dm index b3a2546335..6cf4c73e44 100644 --- a/code/_onclick/hud/swarmer.dm +++ b/code/_onclick/hud/swarmer.dm @@ -90,8 +90,3 @@ using = new /obj/screen/swarmer/ContactSwarmers() using.screen_loc = ui_inventory static_inventory += using - - -/mob/living/simple_animal/hostile/swarmer/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/swarmer(src) \ No newline at end of file diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 1bc72b1b34..3a8a22923c 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -36,6 +36,8 @@ return ..() || ((obj_flags & CAN_BE_HIT) && I.attack_obj(src, user)) /mob/living/attackby(obj/item/I, mob/living/user, params) + if(..()) + return TRUE user.changeNext_move(CLICK_CD_MELEE) if(user.a_intent == INTENT_HARM && stat == DEAD && (butcher_results || guaranteed_butcher_results)) //can we butcher it? GET_COMPONENT_FROM(butchering, /datum/component/butchering, I) diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 26823133f3..671aa81b79 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -56,6 +56,11 @@ return FALSE return TRUE +/atom/ui_status(mob/user) + . = ..() + if(!can_interact(user)) + . = min(., UI_UPDATE) + /atom/movable/can_interact(mob/user) . = ..() if(!.) diff --git a/code/controllers/configuration/config_entry.dm b/code/controllers/configuration/config_entry.dm index c683f55c59..49ff1c8d49 100644 --- a/code/controllers/configuration/config_entry.dm +++ b/code/controllers/configuration/config_entry.dm @@ -1,6 +1,9 @@ -#define LIST_MODE_NUM 0 -#define LIST_MODE_TEXT 1 -#define LIST_MODE_FLAG 2 +#define VALUE_MODE_NUM 0 +#define VALUE_MODE_TEXT 1 +#define VALUE_MODE_FLAG 2 + +#define KEY_MODE_TEXT 0 +#define KEY_MODE_TYPE 1 /datum/config_entry var/name //read-only, this is determined by the last portion of the derived entry type @@ -15,6 +18,8 @@ var/protection = NONE var/abstract_type = /datum/config_entry //do not instantiate if type matches this + var/vv_VAS = TRUE //Force validate and set on VV. VAS proccall guard will run regardless. + var/dupes_allowed = FALSE /datum/config_entry/New() @@ -37,20 +42,23 @@ . &= !(protection & CONFIG_ENTRY_HIDDEN) /datum/config_entry/vv_edit_var(var_name, var_value) - var/static/list/banned_edits = list(NAMEOF(src, name), NAMEOF(src, default), NAMEOF(src, resident_file), NAMEOF(src, protection), NAMEOF(src, abstract_type), NAMEOF(src, modified), NAMEOF(src, dupes_allowed)) + var/static/list/banned_edits = list(NAMEOF(src, name), NAMEOF(src, vv_VAS), NAMEOF(src, default), NAMEOF(src, resident_file), NAMEOF(src, protection), NAMEOF(src, abstract_type), NAMEOF(src, modified), NAMEOF(src, dupes_allowed)) if(var_name == NAMEOF(src, config_entry_value)) if(protection & CONFIG_ENTRY_LOCKED) return FALSE - . = ValidateAndSet("[var_value]") - if(.) - datum_flags |= DF_VAR_EDITED - return + if(vv_VAS) + . = ValidateAndSet("[var_value]") + if(.) + datum_flags |= DF_VAR_EDITED + return + else + return ..() if(var_name in banned_edits) return FALSE return ..() /datum/config_entry/proc/VASProcCallGuard(str_val) - . = !(IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "ValidateAndSet" && GLOB.LastAdminCalledTargetRef == "[REF(src)]") + . = !((protection & CONFIG_ENTRY_LOCKED) && IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "ValidateAndSet" && GLOB.LastAdminCalledTargetRef == "[REF(src)]") if(!.) log_admin_private("Config set of [type] to [str_val] attempted by [key_name(usr)]") @@ -58,32 +66,6 @@ VASProcCallGuard(str_val) CRASH("Invalid config entry type!") -/datum/config_entry/proc/ValidateKeyedList(str_val, list_mode, splitter) - str_val = trim(str_val) - var/key_pos = findtext(str_val, splitter) - var/key_name = null - var/key_value = null - - if(key_pos || list_mode == LIST_MODE_FLAG) - key_name = lowertext(copytext(str_val, 1, key_pos)) - key_value = copytext(str_val, key_pos + 1) - var/temp - var/continue_check - switch(list_mode) - if(LIST_MODE_FLAG) - temp = TRUE - continue_check = TRUE - if(LIST_MODE_NUM) - temp = text2num(key_value) - continue_check = !isnull(temp) - if(LIST_MODE_TEXT) - temp = key_value - continue_check = temp - if(continue_check && ValidateListEntry(key_name, temp)) - config_entry_value[key_name] = temp - return TRUE - return FALSE - /datum/config_entry/proc/ValidateListEntry(key_name, key_value) return TRUE @@ -156,44 +138,59 @@ config_entry_value = new_list return TRUE -/datum/config_entry/keyed_flag_list - abstract_type = /datum/config_entry/keyed_flag_list - config_entry_value = list() - dupes_allowed = TRUE - -/datum/config_entry/keyed_flag_list/ValidateAndSet(str_val) - if(!VASProcCallGuard(str_val)) - return FALSE - return ValidateKeyedList(str_val, LIST_MODE_FLAG, " ") - -/datum/config_entry/keyed_number_list - abstract_type = /datum/config_entry/keyed_number_list +/datum/config_entry/keyed_list + abstract_type = /datum/config_entry/keyed_list config_entry_value = list() dupes_allowed = TRUE + vv_VAS = FALSE //VAS will not allow things like deleting from lists, it'll just bug horribly. + var/key_mode + var/value_mode var/splitter = " " -/datum/config_entry/keyed_number_list/vv_edit_var(var_name, var_value) - return var_name != "splitter" && ..() +/datum/config_entry/keyed_list/New() + . = ..() + if(isnull(key_mode) || isnull(value_mode)) + CRASH("Keyed list of type [type] created with null key or value mode!") -/datum/config_entry/keyed_number_list/ValidateAndSet(str_val) +/datum/config_entry/keyed_list/ValidateAndSet(str_val) if(!VASProcCallGuard(str_val)) return FALSE - return ValidateKeyedList(str_val, LIST_MODE_NUM, splitter) -/datum/config_entry/keyed_string_list - abstract_type = /datum/config_entry/keyed_string_list - config_entry_value = list() - dupes_allowed = TRUE - var/splitter = " " - -/datum/config_entry/keyed_string_list/vv_edit_var(var_name, var_value) - return var_name != "splitter" && ..() + str_val = trim(str_val) + var/key_pos = findtext(str_val, splitter) + var/key_name = null + var/key_value = null -/datum/config_entry/keyed_string_list/ValidateAndSet(str_val) - if(!VASProcCallGuard(str_val)) - return FALSE - return ValidateKeyedList(str_val, LIST_MODE_TEXT, splitter) + if(key_pos || value_mode == VALUE_MODE_FLAG) + key_name = lowertext(copytext(str_val, 1, key_pos)) + key_value = copytext(str_val, key_pos + 1) + var/new_key + var/new_value + var/continue_check_value + var/continue_check_key + switch(key_mode) + if(KEY_MODE_TEXT) + new_key = key_name + continue_check_key = new_key + if(KEY_MODE_TYPE) + new_key = key_name + if(!ispath(new_key)) + new_key = text2path(new_key) + continue_check_key = ispath(new_key) + switch(value_mode) + if(VALUE_MODE_FLAG) + new_value = TRUE + continue_check_value = TRUE + if(VALUE_MODE_NUM) + new_value = text2num(key_value) + continue_check_value = !isnull(new_value) + if(VALUE_MODE_TEXT) + new_value = key_value + continue_check_value = new_value + if(continue_check_value && continue_check_key && ValidateListEntry(new_key, new_value)) + config_entry_value[new_key] = new_value + return TRUE + return FALSE -#undef LIST_MODE_NUM -#undef LIST_MODE_TEXT -#undef LIST_MODE_FLAG +/datum/config_entry/keyed_list/vv_edit_var(var_name, var_value) + return var_name != "splitter" && ..() diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index 60904ab5ef..0232081c1a 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -20,7 +20,17 @@ var/motd +/datum/controller/configuration/proc/admin_reload() + if(IsAdminAdvancedProcCall()) + return + log_admin("[key_name_admin(usr)] has forcefully reloaded the configuration from disk.") + message_admins("[key_name_admin(usr)] has forcefully reloaded the configuration from disk.") + full_wipe() + Load(world.params[OVERRIDE_CONFIG_DIRECTORY_PARAMETER]) + /datum/controller/configuration/proc/Load(_directory) + if(IsAdminAdvancedProcCall()) //If admin proccall is detected down the line it will horribly break everything. + return if(_directory) directory = _directory if(entries) @@ -38,12 +48,18 @@ loadmaplist(CONFIG_MAPS_FILE) LoadMOTD() -/datum/controller/configuration/Destroy() +/datum/controller/configuration/proc/full_wipe() + if(IsAdminAdvancedProcCall()) + return entries_by_type.Cut() QDEL_LIST_ASSOC_VAL(entries) + entries = null QDEL_LIST_ASSOC_VAL(maplist) + maplist = null QDEL_NULL(defaultmap) +/datum/controller/configuration/Destroy() + full_wipe() config = null return ..() @@ -89,7 +105,7 @@ L = trim(L) if(!L) continue - + var/firstchar = copytext(L, 1, 2) if(firstchar == "#") continue @@ -110,7 +126,7 @@ if(!entry) continue - + if(entry == "$include") if(!value) log_config("Warning: Invalid $include directive: [value]") @@ -118,7 +134,7 @@ LoadEntries(value, stack) ++. continue - + var/datum/config_entry/E = _entries[entry] if(!E) log_config("Unknown setting in configuration: '[entry]'") @@ -140,19 +156,19 @@ E = new_ver else warning("[new_ver.type] is deprecated but gave no proper return for DeprecationUpdate()") - + var/validated = E.ValidateAndSet(value) if(!validated) log_config("Failed to validate setting \"[value]\" for [entry]") - else + else if(E.modified && !E.dupes_allowed) log_config("Duplicate setting for [entry] ([value], [E.resident_file]) detected! Using latest.") E.resident_file = filename - + if(validated) E.modified = TRUE - + ++. /datum/controller/configuration/can_vv_get(var_name) @@ -168,9 +184,6 @@ stat("[name]:", statclick) /datum/controller/configuration/proc/Get(entry_type) - if(IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "Get" && GLOB.LastAdminCalledTargetRef == "[REF(src)]") - log_admin_private("Config access of [entry_type] attempted by [key_name(usr)]") - return var/datum/config_entry/E = entry_type var/entry_is_abstract = initial(E.abstract_type) == entry_type if(entry_is_abstract) @@ -178,12 +191,12 @@ E = entries_by_type[entry_type] if(!E) CRASH("Missing config entry for [entry_type]!") + if((E.protection & CONFIG_ENTRY_HIDDEN) && IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "Get" && GLOB.LastAdminCalledTargetRef == "[REF(src)]") + log_admin_private("Config access of [entry_type] attempted by [key_name(usr)]") + return return E.config_entry_value /datum/controller/configuration/proc/Set(entry_type, new_val) - if(IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "Set" && GLOB.LastAdminCalledTargetRef == "[REF(src)]") - log_admin_private("Config rewrite of [entry_type] to [new_val] attempted by [key_name(usr)]") - return var/datum/config_entry/E = entry_type var/entry_is_abstract = initial(E.abstract_type) == entry_type if(entry_is_abstract) @@ -191,6 +204,9 @@ E = entries_by_type[entry_type] if(!E) CRASH("Missing config entry for [entry_type]!") + if((E.protection & CONFIG_ENTRY_LOCKED) && IsAdminAdvancedProcCall() && GLOB.LastAdminCalledProc == "Set" && GLOB.LastAdminCalledTargetRef == "[REF(src)]") + log_admin_private("Config rewrite of [entry_type] to [new_val] attempted by [key_name(usr)]") + return return E.ValidateAndSet("[new_val]") /datum/controller/configuration/proc/LoadModes() @@ -200,7 +216,7 @@ mode_reports = list() mode_false_report_weight = list() votable_modes = list() - var/list/probabilities = Get(/datum/config_entry/keyed_number_list/probability) + var/list/probabilities = Get(/datum/config_entry/keyed_list/probability) for(var/T in gamemode_cache) // I wish I didn't have to instance the game modes in order to look up // their information, but it is the only way (at least that I know of). @@ -296,9 +312,9 @@ /datum/controller/configuration/proc/get_runnable_modes() var/list/datum/game_mode/runnable_modes = new - var/list/probabilities = Get(/datum/config_entry/keyed_number_list/probability) - var/list/min_pop = Get(/datum/config_entry/keyed_number_list/min_pop) - var/list/max_pop = Get(/datum/config_entry/keyed_number_list/max_pop) + var/list/probabilities = Get(/datum/config_entry/keyed_list/probability) + var/list/min_pop = Get(/datum/config_entry/keyed_list/min_pop) + var/list/max_pop = Get(/datum/config_entry/keyed_list/max_pop) var/list/repeated_mode_adjust = Get(/datum/config_entry/number_list/repeated_mode_adjust) for(var/T in gamemode_cache) var/datum/game_mode/M = new T() @@ -326,9 +342,9 @@ /datum/controller/configuration/proc/get_runnable_midround_modes(crew) var/list/datum/game_mode/runnable_modes = new - var/list/probabilities = Get(/datum/config_entry/keyed_number_list/probability) - var/list/min_pop = Get(/datum/config_entry/keyed_number_list/min_pop) - var/list/max_pop = Get(/datum/config_entry/keyed_number_list/max_pop) + var/list/probabilities = Get(/datum/config_entry/keyed_list/probability) + var/list/min_pop = Get(/datum/config_entry/keyed_list/min_pop) + var/list/max_pop = Get(/datum/config_entry/keyed_list/max_pop) for(var/T in (gamemode_cache - SSticker.mode.type)) var/datum/game_mode/M = new T() if(!(M.config_tag in modes)) diff --git a/code/controllers/configuration/entries/comms.dm b/code/controllers/configuration/entries/comms.dm index 576e73faaa..a1de1c962e 100644 --- a/code/controllers/configuration/entries/comms.dm +++ b/code/controllers/configuration/entries/comms.dm @@ -4,10 +4,12 @@ /datum/config_entry/string/comms_key/ValidateAndSet(str_val) return str_val != "default_pwd" && length(str_val) > 6 && ..() -/datum/config_entry/keyed_string_list/cross_server +/datum/config_entry/keyed_list/cross_server + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_TEXT protection = CONFIG_ENTRY_LOCKED -/datum/config_entry/keyed_string_list/cross_server/ValidateAndSet(str_val) +/datum/config_entry/keyed_list/cross_server/ValidateAndSet(str_val) . = ..() if(.) var/list/newv = list() @@ -15,7 +17,7 @@ newv[replacetext(I, "+", " ")] = config_entry_value[I] config_entry_value = newv -/datum/config_entry/keyed_string_list/cross_server/ValidateListEntry(key_name, key_value) +/datum/config_entry/keyed_list/cross_server/ValidateListEntry(key_name, key_value) return key_value != "byond:\\address:port" && ..() /datum/config_entry/string/cross_comms_name diff --git a/code/controllers/configuration/entries/dbconfig.dm b/code/controllers/configuration/entries/dbconfig.dm index 72f190c2f1..b034195241 100644 --- a/code/controllers/configuration/entries/dbconfig.dm +++ b/code/controllers/configuration/entries/dbconfig.dm @@ -44,4 +44,8 @@ min_val = 0 protection = CONFIG_ENTRY_LOCKED +/datum/config_entry/number/bsql_thread_limit + config_entry_value = 50 + min_val = 1 + /datum/config_entry/flag/bsql_debug diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 2d41fc77ef..cd113d8657 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -1,31 +1,43 @@ /datum/config_entry/number_list/repeated_mode_adjust -/datum/config_entry/keyed_number_list/probability +/datum/config_entry/keyed_list/probability + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM -/datum/config_entry/keyed_number_list/probability/ValidateListEntry(key_name) +/datum/config_entry/keyed_list/probability/ValidateListEntry(key_name) return key_name in config.modes -/datum/config_entry/keyed_number_list/max_pop +/datum/config_entry/keyed_list/max_pop + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM -/datum/config_entry/keyed_number_list/max_pop/ValidateListEntry(key_name) +/datum/config_entry/keyed_list/max_pop/ValidateListEntry(key_name) return key_name in config.modes -/datum/config_entry/keyed_number_list/min_pop +/datum/config_entry/keyed_list/min_pop + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM -/datum/config_entry/keyed_number_list/min_pop/ValidateListEntry(key_name, key_value) +/datum/config_entry/keyed_list/min_pop/ValidateListEntry(key_name, key_value) return key_name in config.modes -/datum/config_entry/keyed_flag_list/continuous // which roundtypes continue if all antagonists die +/datum/config_entry/keyed_list/continuous // which roundtypes continue if all antagonists die + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_FLAG -/datum/config_entry/keyed_flag_list/continuous/ValidateListEntry(key_name, key_value) +/datum/config_entry/keyed_list/continuous/ValidateListEntry(key_name, key_value) return key_name in config.modes -/datum/config_entry/keyed_flag_list/midround_antag // which roundtypes use the midround antagonist system +/datum/config_entry/keyed_list/midround_antag // which roundtypes use the midround antagonist system + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_FLAG -/datum/config_entry/keyed_flag_list/midround_antag/ValidateListEntry(key_name, key_value) +/datum/config_entry/keyed_list/midround_antag/ValidateListEntry(key_name, key_value) return key_name in config.modes -/datum/config_entry/keyed_string_list/policy +/datum/config_entry/keyed_list/policy + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_TEXT /datum/config_entry/number/damage_multiplier config_entry_value = 1 @@ -124,7 +136,9 @@ /datum/config_entry/flag/show_game_type_odds //if set this allows players to see the odds of each roundtype on the get revision screen -/datum/config_entry/keyed_flag_list/roundstart_races //races you can play as from the get go. +/datum/config_entry/keyed_list/roundstart_races //races you can play as from the get go. + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_FLAG /datum/config_entry/flag/join_with_mutant_humans //players can pick mutant bodyparts for humans before joining the game @@ -174,28 +188,67 @@ /datum/config_entry/flag/emojis -/datum/config_entry/number/run_delay //Used for modifying movement speed for mobs. - var/static/value_cache = 0 - -/datum/config_entry/number/run_delay/ValidateAndSet() +/datum/config_entry/keyed_list/multiplicative_movespeed + key_mode = KEY_MODE_TYPE + value_mode = VALUE_MODE_NUM + config_entry_value = list( //DEFAULTS + /mob/living/simple_animal = 1, + /mob/living/silicon/pai = 1, + /mob/living/carbon/alien/humanoid/hunter = -1, + /mob/living/carbon/alien/humanoid/royal/praetorian = 1, + /mob/living/carbon/alien/humanoid/royal/queen = 3 + ) + +/datum/config_entry/keyed_list/multiplicative_movespeed/ValidateAndSet() . = ..() if(.) - value_cache = config_entry_value + update_config_movespeed_type_lookup(TRUE) + +/datum/config_entry/keyed_list/multiplicative_movespeed/vv_edit_var(var_name, var_value) + . = ..() + if(. && (var_name == NAMEOF(src, config_entry_value))) + update_config_movespeed_type_lookup(TRUE) -/datum/config_entry/number/walk_delay - var/static/value_cache = 0 +/datum/config_entry/number/movedelay //Used for modifying movement speed for mobs. + abstract_type = /datum/config_entry/number/movedelay -/datum/config_entry/number/walk_delay/ValidateAndSet() +/datum/config_entry/number/movedelay/ValidateAndSet() . = ..() if(.) - value_cache = config_entry_value + update_mob_config_movespeeds() + +/datum/config_entry/number/movedelay/vv_edit_var(var_name, var_value) + . = ..() + if(. && (var_name == NAMEOF(src, config_entry_value))) + update_mob_config_movespeeds() + +/datum/config_entry/number/movedelay/run_delay + +/datum/config_entry/number/movedelay/walk_delay + +/////////////////////////////////////////////////Outdated move delay +/datum/config_entry/number/outdated_movedelay + deprecated_by = /datum/config_entry/keyed_list/multiplicative_movespeed + abstract_type = /datum/config_entry/number/outdated_movedelay + + var/movedelay_type + +/datum/config_entry/number/outdated_movedelay/DeprecationUpdate(value) + return "[movedelay_type] [value]" -/datum/config_entry/number/human_delay //Mob specific modifiers. NOTE: These will affect different mob types in different ways -/datum/config_entry/number/robot_delay -/datum/config_entry/number/monkey_delay -/datum/config_entry/number/alien_delay -/datum/config_entry/number/slime_delay -/datum/config_entry/number/animal_delay +/datum/config_entry/number/outdated_movedelay/human_delay + movedelay_type = /mob/living/carbon/human +/datum/config_entry/number/outdated_movedelay/robot_delay + movedelay_type = /mob/living/silicon/robot +/datum/config_entry/number/outdated_movedelay/monkey_delay + movedelay_type = /mob/living/carbon/monkey +/datum/config_entry/number/outdated_movedelay/alien_delay + movedelay_type = /mob/living/carbon/alien +/datum/config_entry/number/outdated_movedelay/slime_delay + movedelay_type = /mob/living/simple_animal/slime +/datum/config_entry/number/outdated_movedelay/animal_delay + movedelay_type = /mob/living/simple_animal +///////////////////////////////////////////////// /datum/config_entry/flag/roundstart_away //Will random away mission be loaded. @@ -219,9 +272,13 @@ config_entry_value = 12 min_val = 0 -/datum/config_entry/keyed_flag_list/random_laws +/datum/config_entry/keyed_list/random_laws + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_FLAG -/datum/config_entry/keyed_number_list/law_weight +/datum/config_entry/keyed_list/law_weight + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM splitter = "," /datum/config_entry/number/overflow_cap @@ -286,7 +343,9 @@ /datum/config_entry/flag/shift_time_realtime -/datum/config_entry/keyed_number_list/antag_rep +/datum/config_entry/keyed_list/antag_rep + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM /datum/config_entry/number/monkeycap config_entry_value = 64 diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 1d41e9a765..0eb81fa225 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -49,6 +49,8 @@ /datum/config_entry/flag/log_pda // log pda messages +/datum/config_entry/flag/log_telecomms // log telecomms messages + /datum/config_entry/flag/log_twitter // log certain expliotable parrots and other such fun things in a JSON file of twitter valid phrases. /datum/config_entry/flag/log_world_topic // log all world.Topic() calls @@ -410,3 +412,7 @@ /datum/config_entry/string/default_view config_entry_value = "15x15" + +/datum/config_entry/flag/log_pictures + +/datum/config_entry/flag/picture_logging_camera diff --git a/code/controllers/globals.dm b/code/controllers/globals.dm index 4791f21c13..4683e93a46 100644 --- a/code/controllers/globals.dm +++ b/code/controllers/globals.dm @@ -30,11 +30,6 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars) stat("Globals:", statclick.update("Edit")) -/datum/controller/global_vars/can_vv_get(var_name) - if(gvars_datum_protected_varlist[var_name]) - return FALSE - return ..() - /datum/controller/global_vars/vv_edit_var(var_name, var_value) if(gvars_datum_protected_varlist[var_name]) return FALSE diff --git a/code/controllers/subsystem/dbcore.dm b/code/controllers/subsystem/dbcore.dm index b445056e76..b9ad66fbce 100644 --- a/code/controllers/subsystem/dbcore.dm +++ b/code/controllers/subsystem/dbcore.dm @@ -76,7 +76,7 @@ SUBSYSTEM_DEF(dbcore) var/address = CONFIG_GET(string/address) var/port = CONFIG_GET(number/port) - connection = new /datum/BSQL_Connection(BSQL_CONNECTION_TYPE_MARIADB, CONFIG_GET(number/async_query_timeout), CONFIG_GET(number/blocking_query_timeout)) + connection = new /datum/BSQL_Connection(BSQL_CONNECTION_TYPE_MARIADB, CONFIG_GET(number/async_query_timeout), CONFIG_GET(number/blocking_query_timeout), CONFIG_GET(number/bsql_thread_limit)) var/error if(QDELETED(connection)) connection = null @@ -90,6 +90,7 @@ SUBSYSTEM_DEF(dbcore) error = connectOperation.GetError() . = !error if (!.) + last_error = error log_sql("Connect() failed | [error]") ++failed_connections QDEL_NULL(connection) diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 7d6173c738..499ba66847 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -362,7 +362,7 @@ SUBSYSTEM_DEF(job) var/allowed_to_be_a_loser = !jobban_isbanned(player, SSjob.overflow_role) if(QDELETED(player) || !allowed_to_be_a_loser) RejectPlayer(player) - else + else if(!AssignRole(player, SSjob.overflow_role)) RejectPlayer(player) else if(player.client.prefs.joblessrole == BERANDOMJOB) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 7c67d84dc0..f3a8434e46 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -33,7 +33,6 @@ SUBSYSTEM_DEF(mapping) var/list/z_list var/datum/space_level/transit var/datum/space_level/empty_space - var/datum/maploader/loader /datum/controller/subsystem/mapping/PreInit() if(!config) @@ -54,7 +53,6 @@ SUBSYSTEM_DEF(mapping) if(!config || config.defaulted) to_chat(world, "Unable to load next or default map config, defaulting to Box Station") config = old_config - loader = new loadWorld() repopulate_sorted_areas() process_teleport_locs() //Sets up the wizard teleport locations @@ -177,11 +175,15 @@ SUBSYSTEM_DEF(mapping) // check that the total z count of all maps matches the list of traits var/total_z = 0 + var/list/parsed_maps = list() for (var/file in files) var/full_path = "_maps/[path]/[file]" - var/datum/parsed_map/pm = loader.load_map(file(full_path), 1, 1, 1, cropMap=FALSE, measureOnly=TRUE) + var/datum/parsed_map/pm = new(file(full_path)) var/bounds = pm?.bounds - files[file] = total_z // save the start Z of this file + if (!bounds) + errorList |= full_path + continue + parsed_maps[pm] = total_z // save the start Z of this file total_z += bounds[MAP_MAXZ] - bounds[MAP_MINZ] + 1 if (!length(traits)) // null or empty - default @@ -202,15 +204,13 @@ SUBSYSTEM_DEF(mapping) ++i // load the maps - for (var/file in files) - var/full_path = "_maps/[path]/[file]" - var/datum/parsed_map/parsed = loader.load_map(file(full_path), 0, 0, start_z + files[file], no_changeturf = TRUE) - if(!parsed?.bounds) - errorList |= full_path - else - . += parsed + for (var/P in parsed_maps) + var/datum/parsed_map/pm = P + if (!pm.load(1, 1, start_z + parsed_maps[P], no_changeturf = TRUE)) + errorList |= pm.original_path if(!silent) INIT_ANNOUNCE("Loaded [name] in [(REALTIMEOFDAY - start_time)/10]s!") + return parsed_maps /datum/controller/subsystem/mapping/proc/loadWorld() //if any of these fail, something has gone horribly, HORRIBLY, wrong diff --git a/code/controllers/subsystem/medals.dm b/code/controllers/subsystem/medals.dm index 21366978f6..6dafb2c3cb 100644 --- a/code/controllers/subsystem/medals.dm +++ b/code/controllers/subsystem/medals.dm @@ -14,8 +14,8 @@ SUBSYSTEM_DEF(medals) return if(isnull(world.SetMedal(medal, player, CONFIG_GET(string/medal_hub_address), CONFIG_GET(string/medal_hub_password)))) hub_enabled = FALSE - log_game("MEDAL ERROR: Could not contact hub to award medal:[medal] player:[player.ckey]") - message_admins("Error! Failed to contact hub to award [medal] medal to [player.ckey]!") + log_game("MEDAL ERROR: Could not contact hub to award medal:[medal] player:[player.key]") + message_admins("Error! Failed to contact hub to award [medal] medal to [player.key]!") return to_chat(player, "Achievement unlocked: [medal]!") @@ -38,8 +38,8 @@ SUBSYSTEM_DEF(medals) if(isnull(world.SetScores(player.ckey, newscoreparam, CONFIG_GET(string/medal_hub_address), CONFIG_GET(string/medal_hub_password)))) hub_enabled = FALSE - log_game("SCORE ERROR: Could not contact hub to set score. Score:[score] player:[player.ckey]") - message_admins("Error! Failed to contact hub to set [score] score for [player.ckey]!") + log_game("SCORE ERROR: Could not contact hub to set score. Score:[score] player:[player.key]") + message_admins("Error! Failed to contact hub to set [score] score for [player.key]!") /datum/controller/subsystem/medals/proc/GetScore(score, client/player, returnlist) if(!score || !hub_enabled) @@ -48,8 +48,8 @@ SUBSYSTEM_DEF(medals) var/scoreget = world.GetScores(player.ckey, score, CONFIG_GET(string/medal_hub_address), CONFIG_GET(string/medal_hub_password)) if(isnull(scoreget)) hub_enabled = FALSE - log_game("SCORE ERROR: Could not contact hub to get score. Score:[score] player:[player.ckey]") - message_admins("Error! Failed to contact hub to get score: [score] for [player.ckey]!") + log_game("SCORE ERROR: Could not contact hub to get score. Score:[score] player:[player.key]") + message_admins("Error! Failed to contact hub to get score: [score] for [player.key]!") return . = params2list(scoreget) if(!returnlist) @@ -61,8 +61,8 @@ SUBSYSTEM_DEF(medals) if(isnull(world.GetMedal(medal, player, CONFIG_GET(string/medal_hub_address), CONFIG_GET(string/medal_hub_password)))) hub_enabled = FALSE - log_game("MEDAL ERROR: Could not contact hub to get medal:[medal] player: [player.ckey]") - message_admins("Error! Failed to contact hub to get [medal] medal for [player.ckey]!") + log_game("MEDAL ERROR: Could not contact hub to get medal:[medal] player: [player.key]") + message_admins("Error! Failed to contact hub to get [medal] medal for [player.key]!") return to_chat(player, "[medal] is unlocked") @@ -73,15 +73,15 @@ SUBSYSTEM_DEF(medals) switch(result) if(null) hub_enabled = FALSE - log_game("MEDAL ERROR: Could not contact hub to clear medal:[medal] player:[player.ckey]") - message_admins("Error! Failed to contact hub to clear [medal] medal for [player.ckey]!") + log_game("MEDAL ERROR: Could not contact hub to clear medal:[medal] player:[player.key]") + message_admins("Error! Failed to contact hub to clear [medal] medal for [player.key]!") if(TRUE) - message_admins("Medal: [medal] removed for [player.ckey]") + message_admins("Medal: [medal] removed for [player.key]") if(FALSE) - message_admins("Medal: [medal] was not found for [player.ckey]. Unable to clear.") + message_admins("Medal: [medal] was not found for [player.key]. Unable to clear.") /datum/controller/subsystem/medals/proc/ClearScore(client/player) if(isnull(world.SetScores(player.ckey, "", CONFIG_GET(string/medal_hub_address), CONFIG_GET(string/medal_hub_password)))) - log_game("MEDAL ERROR: Could not contact hub to clear scores for [player.ckey]!") - message_admins("Error! Failed to contact hub to clear scores for [player.ckey]!") \ No newline at end of file + log_game("MEDAL ERROR: Could not contact hub to clear scores for [player.key]!") + message_admins("Error! Failed to contact hub to clear scores for [player.key]!") diff --git a/code/controllers/subsystem/npcpool.dm b/code/controllers/subsystem/npcpool.dm index 67e31b6931..d93f1f2407 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) + if(!SA.ckey && !SA.notransform) if(SA.stat != DEAD) SA.handle_automated_movement() if(SA.stat != DEAD) diff --git a/code/controllers/subsystem/pathfinder.dm b/code/controllers/subsystem/pathfinder.dm index 871eba49ad..fee93d14b2 100644 --- a/code/controllers/subsystem/pathfinder.dm +++ b/code/controllers/subsystem/pathfinder.dm @@ -9,7 +9,7 @@ SUBSYSTEM_DEF(pathfinder) /datum/controller/subsystem/pathfinder/Initialize() space_type_cache = typecacheof(/turf/open/space) mobs = new(10) - circuits = new(3) + circuits = new(3) return ..() /datum/flowcache diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm index 14db2f1607..0e92d56240 100644 --- a/code/controllers/subsystem/persistence.dm +++ b/code/controllers/subsystem/persistence.dm @@ -15,6 +15,9 @@ SUBSYSTEM_DEF(persistence) var/list/spawned_objects = list() var/list/antag_rep = list() var/list/antag_rep_change = list() + var/list/picture_logging_information = list() + var/list/obj/structure/sign/picture_frame/photo_frames + var/list/obj/item/storage/photo_album/photo_albums /datum/controller/subsystem/persistence/Initialize() LoadSatchels() @@ -22,6 +25,7 @@ SUBSYSTEM_DEF(persistence) LoadChiselMessages() LoadTrophies() LoadRecentModes() + LoadPhotoPersistence() if(CONFIG_GET(flag/use_antag_rep)) LoadAntagReputation() ..() @@ -194,15 +198,84 @@ SUBSYSTEM_DEF(persistence) T.placer_key = chosen_trophy["placer_key"] T.update_icon() - /datum/controller/subsystem/persistence/proc/CollectData() CollectChiselMessages() CollectSecretSatchels() CollectTrophies() CollectRoundtype() + SavePhotoPersistence() //THIS IS PERSISTENCE, NOT THE LOGGING PORTION. if(CONFIG_GET(flag/use_antag_rep)) CollectAntagReputation() +/datum/controller/subsystem/persistence/proc/GetPhotoAlbums() + var/album_path = file("data/photo_albums.json") + if(fexists(album_path)) + return json_decode(file2text(album_path)) + +/datum/controller/subsystem/persistence/proc/GetPhotoFrames() + var/frame_path = file("data/photo_frames.json") + if(fexists(frame_path)) + return json_decode(file2text(frame_path)) + +/datum/controller/subsystem/persistence/proc/LoadPhotoPersistence() + var/album_path = file("data/photo_albums.json") + var/frame_path = file("data/photo_frames.json") + if(fexists(album_path)) + var/list/json = json_decode(file2text(album_path)) + if(json.len) + for(var/i in photo_albums) + var/obj/item/storage/photo_album/A = i + if(!A.persistence_id) + continue + if(json[A.persistence_id]) + A.populate_from_id_list(json[A.persistence_id]) + + if(fexists(frame_path)) + var/list/json = json_decode(file2text(frame_path)) + if(json.len) + for(var/i in photo_frames) + var/obj/structure/sign/picture_frame/PF = i + if(!PF.persistence_id) + continue + if(json[PF.persistence_id]) + PF.load_from_id(json[PF.persistence_id]) + +/datum/controller/subsystem/persistence/proc/SavePhotoPersistence() + var/album_path = file("data/photo_albums.json") + var/frame_path = file("data/photo_frames.json") + + var/list/frame_json = list() + var/list/album_json = list() + + if(fexists(album_path)) + album_json = json_decode(file2text(album_path)) + fdel(album_path) + + for(var/i in photo_albums) + var/obj/item/storage/photo_album/A = i + if(!istype(A) || !A.persistence_id) + continue + var/list/L = A.get_picture_id_list() + album_json[A.persistence_id] = L + + album_json = json_encode(album_json) + + WRITE_FILE(album_path, album_json) + + if(fexists(frame_path)) + frame_json = json_decode(file2text(frame_path)) + fdel(frame_path) + + for(var/i in photo_frames) + var/obj/structure/sign/picture_frame/F = i + if(!istype(F) || !F.persistence_id) + continue + frame_json[F.persistence_id] = F.get_photo_id() + + frame_json = json_encode(frame_json) + + WRITE_FILE(frame_path, frame_json) + /datum/controller/subsystem/persistence/proc/CollectSecretSatchels() satchel_blacklist = typecacheof(list(/obj/item/stack/tile/plasteel, /obj/item/crowbar)) var/list/satchels_to_add = list() diff --git a/code/controllers/subsystem/processing/circuit.dm b/code/controllers/subsystem/processing/circuit.dm index dad71a005a..1ae5bad23c 100644 --- a/code/controllers/subsystem/processing/circuit.dm +++ b/code/controllers/subsystem/processing/circuit.dm @@ -50,6 +50,11 @@ PROCESSING_SUBSYSTEM_DEF(circuit) /obj/item/electronic_assembly/simple, /obj/item/electronic_assembly/hook, /obj/item/electronic_assembly/pda, + /obj/item/electronic_assembly/small/default, + /obj/item/electronic_assembly/small/cylinder, + /obj/item/electronic_assembly/small/scanner, + /obj/item/electronic_assembly/small/hook, + /obj/item/electronic_assembly/small/box, /obj/item/electronic_assembly/medium/default, /obj/item/electronic_assembly/medium/box, /obj/item/electronic_assembly/medium/clam, @@ -68,6 +73,7 @@ PROCESSING_SUBSYSTEM_DEF(circuit) /obj/item/electronic_assembly/drone/medbot, /obj/item/electronic_assembly/drone/genbot, /obj/item/electronic_assembly/drone/android, + /obj/item/electronic_assembly/wallmount/tiny, /obj/item/electronic_assembly/wallmount/light, /obj/item/electronic_assembly/wallmount, /obj/item/electronic_assembly/wallmount/heavy @@ -83,3 +89,4 @@ PROCESSING_SUBSYSTEM_DEF(circuit) /obj/item/card/data/full_color, /obj/item/card/data/disk ) + diff --git a/code/controllers/subsystem/processing/obj.dm b/code/controllers/subsystem/processing/obj.dm index 68f6f16cea..26021fb267 100644 --- a/code/controllers/subsystem/processing/obj.dm +++ b/code/controllers/subsystem/processing/obj.dm @@ -1,29 +1,5 @@ -SUBSYSTEM_DEF(obj) +PROCESSING_SUBSYSTEM_DEF(obj) name = "Objects" priority = FIRE_PRIORITY_OBJ flags = SS_NO_INIT - - var/list/processing = list() - var/list/currentrun = list() - -/datum/controller/subsystem/obj/stat_entry() - ..("P:[processing.len]") - -/datum/controller/subsystem/obj/fire(resumed = 0) - if (!resumed) - src.currentrun = processing.Copy() - //cache for sanic speed (lists are references anyways) - var/list/currentrun = src.currentrun - - while(currentrun.len) - var/datum/thing = currentrun[currentrun.len] - currentrun.len-- - if(thing) - thing.process(wait) - else - SSobj.processing -= thing - if (MC_TICK_CHECK) - return - -/datum/controller/subsystem/obj/Recover() - processing = SSobj.processing + wait = 20 diff --git a/code/controllers/subsystem/processing/processing.dm b/code/controllers/subsystem/processing/processing.dm index ef2a0f72e6..c5d6dfa126 100644 --- a/code/controllers/subsystem/processing/processing.dm +++ b/code/controllers/subsystem/processing/processing.dm @@ -22,12 +22,14 @@ SUBSYSTEM_DEF(processing) while(current_run.len) var/datum/thing = current_run[current_run.len] current_run.len-- - if(QDELETED(thing) || thing.process(wait) == PROCESS_KILL) + if(QDELETED(thing)) processing -= thing + else if(thing.process(wait) == PROCESS_KILL) + // fully stop so that a future START_PROCESSING will work + STOP_PROCESSING(src, thing) if (MC_TICK_CHECK) return /datum/proc/process() set waitfor = 0 - STOP_PROCESSING(SSobj, src) - return 0 + return PROCESS_KILL diff --git a/code/controllers/subsystem/processing/projectiles.dm b/code/controllers/subsystem/processing/projectiles.dm index 60d84c767b..b0930d3d07 100644 --- a/code/controllers/subsystem/processing/projectiles.dm +++ b/code/controllers/subsystem/processing/projectiles.dm @@ -4,3 +4,20 @@ PROCESSING_SUBSYSTEM_DEF(projectiles) stat_tag = "PP" flags = SS_NO_INIT|SS_TICKER var/global_max_tick_moves = 10 + var/global_pixel_speed = 2 + var/global_iterations_per_move = 16 + +/datum/controller/subsystem/processing/projectiles/proc/set_pixel_speed(new_speed) + global_pixel_speed = 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) + +/datum/controller/subsystem/processing/projectiles/vv_edit_var(var_name, var_value) + switch(var_name) + if(NAMEOF(src, global_pixel_speed)) + set_pixel_speed(var_value) + return TRUE + else + return ..() diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 02af7be0d8..5d9fa19e28 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -626,6 +626,7 @@ SUBSYSTEM_DEF(ticker) /datum/controller/subsystem/ticker/Shutdown() gather_newscaster() //called here so we ensure the log is created even upon admin reboot save_admin_data() + update_everything_flag_in_db() if(!round_end_sound) round_end_sound = pick(\ 'sound/roundend/newroundsexy.ogg', @@ -634,7 +635,8 @@ SUBSYSTEM_DEF(ticker) 'sound/roundend/leavingtg.ogg', 'sound/roundend/its_only_game.ogg', 'sound/roundend/yeehaw.ogg', - 'sound/roundend/disappointed.ogg'\ + 'sound/roundend/disappointed.ogg', + 'sound/roundend/gondolabridge.ogg'\ ) SEND_SOUND(world, sound(round_end_sound)) diff --git a/code/datums/action.dm b/code/datums/action.dm index 593e81ff01..1a07485949 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -85,8 +85,10 @@ /datum/action/proc/Trigger() if(!IsAvailable()) - return 0 - return 1 + return FALSE + if(SEND_SIGNAL(src, COMSIG_ACTION_TRIGGER, src) & COMPONENT_ACTION_BLOCK_TRIGGER) + return FALSE + return TRUE /datum/action/proc/Process() return @@ -487,6 +489,29 @@ else to_chat(owner, "Your hands are full!") +/datum/action/item_action/agent_box + name = "Deploy Box" + desc = "Find inner peace, here, in the box." + check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_CONSCIOUS + background_icon_state = "bg_agent" + icon_icon = 'icons/mob/actions/actions_items.dmi' + button_icon_state = "deploy_box" + var/cooldown = 0 + var/obj/structure/closet/cardboard/agent/box + +/datum/action/item_action/agent_box/Trigger() + if(!..()) + return FALSE + if(!box) + if(cooldown < world.time - 100) + box = new(get_turf(owner)) + owner.forceMove(box) + cooldown = world.time + owner.playsound_local(box, 'sound/misc/box_deploy.ogg', 50, TRUE) + else + owner.forceMove(get_turf(box)) + owner.playsound_local(box, 'sound/misc/box_deploy.ogg', 50, TRUE) + QDEL_NULL(box) //Preset for spells /datum/action/spell_action @@ -697,7 +722,3 @@ target.layer = old_layer target.plane = old_plane current_button.appearance_cache = target.appearance - -/datum/action/item_action/storage_gather_mode/Trigger() - GET_COMPONENT_FROM(STR, /datum/component/storage, target) - STR.gather_mode_switch(owner) diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index 0007512826..74b670b644 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -218,7 +218,7 @@ /* General ai_law functions */ /datum/ai_laws/proc/set_laws_config() - var/list/law_ids = CONFIG_GET(keyed_flag_list/random_laws) + var/list/law_ids = CONFIG_GET(keyed_list/random_laws) switch(CONFIG_GET(number/default_laws)) if(0) add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") @@ -247,7 +247,7 @@ /datum/ai_laws/proc/pick_weighted_lawset() var/datum/ai_laws/lawtype - var/list/law_weights = CONFIG_GET(keyed_number_list/law_weight) + var/list/law_weights = CONFIG_GET(keyed_list/law_weight) while(!lawtype && law_weights.len) var/possible_id = pickweightAllowZero(law_weights) lawtype = lawid_to_type(possible_id) diff --git a/code/datums/brain_damage/imaginary_friend.dm b/code/datums/brain_damage/imaginary_friend.dm index 8af71a714b..d738645c22 100644 --- a/code/datums/brain_damage/imaginary_friend.dm +++ b/code/datums/brain_damage/imaginary_friend.dm @@ -158,7 +158,7 @@ if(owner.client) var/mutable_appearance/MA = mutable_appearance('icons/mob/talk.dmi', src, "default[say_test(message)]", FLY_LAYER) MA.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA - INVOKE_ASYNC(GLOBAL_PROC, /.proc/flick_overlay, MA, list(owner.client), 30) + INVOKE_ASYNC(GLOBAL_PROC, /proc/flick_overlay, MA, list(owner.client), 30) for(var/mob/M in GLOB.dead_mob_list) var/link = FOLLOW_LINK(M, owner) diff --git a/code/datums/brain_damage/special.dm b/code/datums/brain_damage/special.dm index 7d3c5f6d2f..0bbbf8de08 100644 --- a/code/datums/brain_damage/special.dm +++ b/code/datums/brain_damage/special.dm @@ -15,7 +15,7 @@ if(prob(4)) if(prob(33) && (owner.IsStun() || owner.IsKnockdown() || owner.IsUnconscious())) speak("unstun", TRUE) - else if(prob(60) && owner.health <= owner.crit_modifier()) + else if(prob(60) && owner.health <= owner.crit_threshold) speak("heal", TRUE) else if(prob(30) && owner.a_intent == INTENT_HARM) speak("aggressive") diff --git a/code/datums/brain_damage/split_personality.dm b/code/datums/brain_damage/split_personality.dm index 337926ce6b..ba39845d61 100644 --- a/code/datums/brain_damage/split_personality.dm +++ b/code/datums/brain_damage/split_personality.dm @@ -61,7 +61,7 @@ current_backseat = owner_backseat free_backseat = stranger_backseat - log_game("[key_name(current_backseat)] assumed control of [key_name(owner)] due to [src]. (Original owner: [current_controller == OWNER ? owner.ckey : current_backseat.ckey])") + log_game("[key_name(current_backseat)] assumed control of [key_name(owner)] due to [src]. (Original owner: [current_controller == OWNER ? owner.key : current_backseat.key])") to_chat(owner, "You feel your control being taken away... your other personality is in charge now!") to_chat(current_backseat, "You manage to take control of your body!") diff --git a/code/datums/cinematic.dm b/code/datums/cinematic.dm index 321e9c802d..e229b25258 100644 --- a/code/datums/cinematic.dm +++ b/code/datums/cinematic.dm @@ -22,7 +22,8 @@ GLOBAL_LIST_EMPTY(cinematics) /obj/screen/cinematic icon = 'icons/effects/station_explosion.dmi' icon_state = "station_intact" - layer = 21 + plane = SPLASHSCREEN_PLANE + layer = SPLASHSCREEN_LAYER mouse_opacity = MOUSE_OPACITY_TRANSPARENT screen_loc = "1,1" @@ -84,12 +85,13 @@ GLOBAL_LIST_EMPTY(cinematics) //Actually play it content() + //Cleanup + sleep(cleanup_time) + //Restore OOC if(ooc_toggled) toggle_ooc(TRUE) - - //Cleanup - sleep(cleanup_time) + qdel(src) //Sound helper diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index ab935bf3e2..1b6e8a6926 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -10,7 +10,7 @@ var/list/arguments = args.Copy(2) if(Initialize(arglist(arguments)) == COMPONENT_INCOMPATIBLE) qdel(src, TRUE, TRUE) - CRASH("Incompatible [type] assigned to a [P.type]!") + CRASH("Incompatible [type] assigned to a [P.type]! args: [json_encode(arguments)]") _JoinParent(P) @@ -92,7 +92,7 @@ /datum/component/proc/RegisterSignal(datum/target, sig_type_or_types, proc_or_callback, override = FALSE) if(QDELETED(src) || QDELETED(target)) return - + var/list/procs = signal_procs if(!procs) signal_procs = procs = list() @@ -232,6 +232,7 @@ CRASH("[nt]: Invalid dupe_type ([dt])!") else new_comp = nt + nt = new_comp.type args[1] = src @@ -281,10 +282,11 @@ var/datum/old_parent = parent PreTransfer() _RemoveFromParent() + parent = null SEND_SIGNAL(old_parent, COMSIG_COMPONENT_REMOVING, src) /datum/proc/TakeComponent(datum/component/target) - if(!target) + if(!target || target.parent == src) return if(target.parent) target.RemoveComponent() diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index ec0c028292..759b07f8c6 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -242,24 +242,25 @@ //For spawning mineral sheets; internal use only /datum/component/material_container/proc/retrieve(sheet_amt, datum/material/M, target = null) if(!M.sheet_type) - return FALSE - if(sheet_amt > 0) - if(M.amount < (sheet_amt * MINERAL_MATERIAL_AMOUNT)) - sheet_amt = round(M.amount / MINERAL_MATERIAL_AMOUNT) - var/count = 0 - while(sheet_amt > MAX_STACK_SIZE) - new M.sheet_type(get_turf(parent), MAX_STACK_SIZE) - count += MAX_STACK_SIZE - use_amount_type(sheet_amt * MINERAL_MATERIAL_AMOUNT, M.id) - sheet_amt -= MAX_STACK_SIZE - if(round((sheet_amt * MINERAL_MATERIAL_AMOUNT) / MINERAL_MATERIAL_AMOUNT)) - var/obj/item/stack/sheet/s = new M.sheet_type(get_turf(parent), sheet_amt) - if(target) - s.forceMove(target) - count += sheet_amt - use_amount_type(sheet_amt * MINERAL_MATERIAL_AMOUNT, M.id) - return count - return FALSE + return 0 + if(sheet_amt <= 0) + return 0 + + if(!target) + target = get_turf(parent) + if(M.amount < (sheet_amt * MINERAL_MATERIAL_AMOUNT)) + sheet_amt = round(M.amount / MINERAL_MATERIAL_AMOUNT) + var/count = 0 + while(sheet_amt > MAX_STACK_SIZE) + new M.sheet_type(target, MAX_STACK_SIZE) + count += MAX_STACK_SIZE + use_amount_type(sheet_amt * MINERAL_MATERIAL_AMOUNT, M.id) + sheet_amt -= MAX_STACK_SIZE + if(sheet_amt >= 1) + new M.sheet_type(target, sheet_amt) + count += sheet_amt + use_amount_type(sheet_amt * MINERAL_MATERIAL_AMOUNT, M.id) + return count /datum/component/material_container/proc/retrieve_sheets(sheet_amt, id, target = null) if(materials[id]) diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 9efc7d8958..42b3083c68 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -1,3 +1,6 @@ +#define MINOR_INSANITY_PEN 5 +#define MAJOR_INSANITY_PEN 10 + /datum/component/mood var/mood //Real happiness var/sanity = 100 //Current sanity @@ -5,21 +8,32 @@ var/mood_level = 5 //To track what stage of moodies they're on var/mood_modifier = 1 //Modifier to allow certain mobs to be less affected by moodlets var/datum/mood_event/list/mood_events = list() - var/mob/living/owner + var/insanity_effect = 0 //is the owner being punished for low mood? If so, how much? + var/holdmyinsanityeffect = 0 //before we edit our sanity lets take a look + var/obj/screen/mood/screen_obj /datum/component/mood/Initialize() if(!isliving(parent)) return COMPONENT_INCOMPATIBLE + START_PROCESSING(SSmood, src) - owner = parent + RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT, .proc/add_event) RegisterSignal(parent, COMSIG_CLEAR_MOOD_EVENT, .proc/clear_event) + RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, .proc/modify_hud) + var/mob/living/owner = parent + 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) + unmodify_hud() return ..() -/datum/component/mood/proc/print_mood() +/datum/component/mood/proc/print_mood(mob/user) var/msg = "*---------*\nYour current mood\n" msg += "My mental status: " //Long term switch(sanity) @@ -63,8 +77,8 @@ var/datum/mood_event/event = mood_events[i] msg += event.description else - msg += "Nothing special has happened to me lately!\n" - to_chat(owner, msg) + msg += "I don't have much of a reaction to anything right now.\n" + to_chat(user || parent, msg) /datum/component/mood/proc/update_mood() //Called whenever a mood event is added or removed mood = 0 @@ -100,13 +114,15 @@ /datum/component/mood/proc/update_mood_icon() + var/mob/living/owner = parent if(owner.client && owner.hud_used) if(sanity < 25) - owner.hud_used.mood.icon_state = "mood_insane" + screen_obj.icon_state = "mood_insane" else - owner.hud_used.mood.icon_state = "mood[mood_level]" + screen_obj.icon_state = "mood[mood_level]" /datum/component/mood/process() //Called on SSmood process + var/mob/living/owner = parent switch(sanity) if(SANITY_INSANE to SANITY_CRAZY) owner.overlay_fullscreen("depression", /obj/screen/fullscreen/depression, 3) @@ -120,13 +136,13 @@ switch(mood_level) if(1) - DecreaseSanity(0.2, 0) + DecreaseSanity(0.2) if(2) - DecreaseSanity(0.125, 25) + DecreaseSanity(0.125, SANITY_CRAZY) if(3) - DecreaseSanity(0.075, 50) + DecreaseSanity(0.075, SANITY_UNSTABLE) if(4) - DecreaseSanity(0.025, 75) + DecreaseSanity(0.025, SANITY_DISTURBED) if(5) IncreaseSanity(0.1) if(6) @@ -134,9 +150,15 @@ if(7) IncreaseSanity(0.20) if(8) - IncreaseSanity(0.25, 125) + IncreaseSanity(0.25, SANITY_GREAT) if(9) - IncreaseSanity(0.4, 125) + IncreaseSanity(0.4, SANITY_GREAT) + + if(insanity_effect != holdmyinsanityeffect) + if(insanity_effect > holdmyinsanityeffect) + owner.crit_threshold += (insanity_effect - holdmyinsanityeffect) + else + owner.crit_threshold -= (holdmyinsanityeffect - insanity_effect) if(owner.has_trait(TRAIT_DEPRESSION)) if(prob(0.05)) @@ -147,17 +169,29 @@ add_event("jolly", /datum/mood_event/jolly) clear_event("depression") -/datum/component/mood/proc/DecreaseSanity(amount, limit = 0) - if(sanity < limit) //This might make KevinZ stop fucking pinging me. + holdmyinsanityeffect = insanity_effect + +/datum/component/mood/proc/DecreaseSanity(amount, minimum = SANITY_INSANE) + if(sanity < minimum) //This might make KevinZ stop fucking pinging me. IncreaseSanity(0.5) else - sanity = max(0, sanity - amount) - -/datum/component/mood/proc/IncreaseSanity(amount, limit = 99) - if(sanity > limit) + sanity = max(minimum, sanity - amount) + if(sanity < SANITY_UNSTABLE) + if(sanity < SANITY_CRAZY) + insanity_effect = (MAJOR_INSANITY_PEN) + else + insanity_effect = (MINOR_INSANITY_PEN) + +/datum/component/mood/proc/IncreaseSanity(amount, maximum = SANITY_NEUTRAL) + if(sanity > maximum) DecreaseSanity(0.5) //Removes some sanity to go back to our current limit. else - sanity = min(limit, sanity + amount) + sanity = min(maximum, sanity + amount) + if(sanity > SANITY_CRAZY) + if(sanity > SANITY_UNSTABLE) + insanity_effect = 0 + else + insanity_effect = MINOR_INSANITY_PEN /datum/component/mood/proc/add_event(category, type, param) //Category will override any events in the same category, should be unique unless the event is based on the same thing like hunger. var/datum/mood_event/the_event @@ -183,3 +217,26 @@ mood_events -= category qdel(event) update_mood() + +/datum/component/mood/proc/modify_hud() + var/mob/living/owner = parent + var/datum/hud/hud = owner.hud_used + screen_obj = new + hud.infodisplay += screen_obj + RegisterSignal(hud, COMSIG_PARENT_QDELETED, .proc/unmodify_hud) + RegisterSignal(screen_obj, COMSIG_CLICK, .proc/hud_click) + +/datum/component/mood/proc/unmodify_hud() + if(!screen_obj) + return + var/mob/living/owner = parent + var/datum/hud/hud = owner.hud_used + if(hud && hud.infodisplay) + hud.infodisplay -= screen_obj + QDEL_NULL(screen_obj) + +/datum/component/mood/proc/hud_click(location, control, params, mob/user) + print_mood(user) + +#undef MINOR_INSANITY_PEN +#undef MAJOR_INSANITY_PEN diff --git a/code/datums/components/rad_insulation.dm b/code/datums/components/rad_insulation.dm index 85a783df44..31f4f8b5cf 100644 --- a/code/datums/components/rad_insulation.dm +++ b/code/datums/components/rad_insulation.dm @@ -1,9 +1,24 @@ -/datum/component/rad_insulation // Yes, this really is just a component to add some vars +/datum/component/rad_insulation var/amount // Multiplier for radiation strength passing through - var/protects // Does this protect things in its contents from being affected? - var/contamination_proof // Can this object be contaminated? -/datum/component/rad_insulation/Initialize(_amount=RAD_MEDIUM_INSULATION, _protects=TRUE, _contamination_proof=TRUE) +/datum/component/rad_insulation/Initialize(_amount=RAD_MEDIUM_INSULATION, protects=TRUE, contamination_proof=TRUE) + if(!isatom(parent)) + return COMPONENT_INCOMPATIBLE + + if(protects) // Does this protect things in its contents from being affected? + RegisterSignal(parent, COMSIG_ATOM_RAD_PROBE, .proc/rad_probe_react) + if(contamination_proof) // Can this object be contaminated? + RegisterSignal(parent, COMSIG_ATOM_RAD_CONTAMINATING, .proc/rad_contaminating) + if(_amount != 1) // If it's 1 it wont have any impact on radiation passing through anyway + RegisterSignal(parent, COMSIG_ATOM_RAD_WAVE_PASSING, .proc/rad_pass) + amount = _amount - protects = _protects - contamination_proof = _contamination_proof \ No newline at end of file + +/datum/component/rad_insulation/proc/rad_probe_react() + return COMPONENT_BLOCK_RADIATION + +/datum/component/rad_insulation/proc/rad_contaminating(strength) + return COMPONENT_BLOCK_CONTAMINATION + +/datum/component/rad_insulation/proc/rad_pass(datum/radiation_wave/wave, width) + wave.intensity = wave.intensity*(1-((1-amount)/width)) // The further out the rad wave goes the less it's affected by insulation (larger width) \ No newline at end of file diff --git a/code/datums/components/remote_materials.dm b/code/datums/components/remote_materials.dm new file mode 100644 index 0000000000..b69c15c329 --- /dev/null +++ b/code/datums/components/remote_materials.dm @@ -0,0 +1,111 @@ +/* +This component allows machines to connect remotely to a material container +(namely an /obj/machinery/ore_silo) elsewhere. It offers optional graceful +fallback to a local material storage in case remote storage is unavailable, and +handles linking back and forth. +*/ + +/datum/component/remote_materials + // Three possible states: + // 1. silo exists, materials is parented to silo + // 2. silo is null, materials is parented to parent + // 3. silo is null, materials is null + var/obj/machinery/ore_silo/silo + var/datum/component/material_container/mat_container + var/category + var/allow_standalone + var/local_size = INFINITY + +/datum/component/remote_materials/Initialize(category, mapload, allow_standalone = TRUE, force_connect = FALSE) + if (!isatom(parent)) + return COMPONENT_INCOMPATIBLE + + src.category = category + src.allow_standalone = allow_standalone + + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackBy) + + var/turf/T = get_turf(parent) + if (force_connect || (mapload && is_station_level(T.z))) + addtimer(CALLBACK(src, .proc/LateInitialize)) + else if (allow_standalone) + _MakeLocal() + +/datum/component/remote_materials/proc/LateInitialize() + silo = GLOB.ore_silo_default + if (silo) + silo.connected += src + mat_container = silo.GetComponent(/datum/component/material_container) + else + _MakeLocal() + +/datum/component/remote_materials/Destroy() + if (silo) + silo.connected -= src + silo.updateUsrDialog() + silo = null + mat_container = null + else if (mat_container) + // specify explicitly in case the other component is deleted first + var/atom/P = parent + mat_container.retrieve_all(P.drop_location()) + return ..() + +/datum/component/remote_materials/proc/_MakeLocal() + silo = null + mat_container = parent.AddComponent(/datum/component/material_container, + list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLASTIC), + local_size, + FALSE, + list(/obj/item/stack)) + +/datum/component/remote_materials/proc/set_local_size(size) + local_size = size + if (!silo && mat_container) + mat_container.max_amount = size + +// called if disconnected by ore silo UI or destruction +/datum/component/remote_materials/proc/disconnect_from(obj/machinery/ore_silo/old_silo) + if (!old_silo || silo != old_silo) + return + silo = null + mat_container = null + if (allow_standalone) + _MakeLocal() + +/datum/component/remote_materials/proc/OnAttackBy(obj/item/I, mob/user) + if (istype(I, /obj/item/multitool)) + var/obj/item/multitool/M = I + if (!QDELETED(M.buffer) && istype(M.buffer, /obj/machinery/ore_silo)) + if (silo == M.buffer) + to_chat(user, "[parent] is already connected to [silo].") + return COMPONENT_NO_AFTERATTACK + if (silo) + silo.connected -= src + silo.updateUsrDialog() + else if (mat_container) + mat_container.retrieve_all() + qdel(mat_container) + silo = M.buffer + silo.connected += src + silo.updateUsrDialog() + mat_container = silo.GetComponent(/datum/component/material_container) + to_chat(user, "You connect [parent] to [silo] from the multitool's buffer.") + return COMPONENT_NO_AFTERATTACK + + else if (silo && istype(I, /obj/item/stack)) + if (silo.remote_attackby(parent, user, I)) + return COMPONENT_NO_AFTERATTACK + +/datum/component/remote_materials/proc/on_hold() + return silo && silo.holds["[get_area(parent)]/[category]"] + +/datum/component/remote_materials/proc/silo_log(obj/machinery/M, action, amount, noun, list/mats) + if (silo) + silo.silo_log(M || parent, action, amount, noun, mats) + +/datum/component/remote_materials/proc/format_amount() + if (mat_container) + return "[mat_container.total_amount] / [mat_container.max_amount == INFINITY ? "Unlimited" : mat_container.max_amount] ([silo ? "remote" : "local"])" + else + return "0 / 0" diff --git a/code/datums/components/signal_redirect.dm b/code/datums/components/signal_redirect.dm index 4de7e99a02..170774c53b 100644 --- a/code/datums/components/signal_redirect.dm +++ b/code/datums/components/signal_redirect.dm @@ -3,15 +3,23 @@ /datum/component/redirect dupe_mode = COMPONENT_DUPE_ALLOWED + var/list/signals -/datum/component/redirect/Initialize(list/signals, datum/callback/_callback, flags=NONE) +/datum/component/redirect/Initialize(list/_signals, flags=NONE) //It's not our job to verify the right signals are registered here, just do it. - if(!LAZYLEN(signals) || !istype(_callback)) - warning("signals are [list2params(signals)], callback is [_callback]]") + if(!LAZYLEN(_signals)) return COMPONENT_INCOMPATIBLE if(flags & REDIRECT_TRANSFER_WITH_TURF && isturf(parent)) RegisterSignal(parent, COMSIG_TURF_CHANGE, .proc/turf_change) - RegisterSignal(parent, signals, _callback) + + signals = _signals + +/datum/component/redirect/RegisterWithParent() + for(var/signal in signals) + RegisterSignal(parent, signal, signals[signal]) + +/datum/component/redirect/UnregisterFromParent() + UnregisterSignal(parent, signals) /datum/component/redirect/proc/turf_change(path, new_baseturfs, flags, list/transfers) transfers += src diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index c07f025adc..b0048b29d8 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -89,6 +89,7 @@ RegisterSignal(parent, COMSIG_ATOM_ATTACK_GHOST, .proc/show_to_ghost) RegisterSignal(parent, COMSIG_ATOM_ENTERED, .proc/refresh_mob_views) RegisterSignal(parent, COMSIG_ATOM_EXITED, .proc/_remove_and_refresh) + RegisterSignal(parent, COMSIG_ATOM_CANREACH, .proc/canreach_react) RegisterSignal(parent, COMSIG_ITEM_PRE_ATTACK, .proc/preattack_intercept) RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/attack_self) @@ -118,6 +119,7 @@ return var/obj/item/I = parent modeswitch_action = new(I) + RegisterSignal(modeswitch_action, COMSIG_ACTION_TRIGGER, .proc/action_trigger) if(I.obj_flags & IN_INVENTORY) var/mob/M = I.loc if(!istype(M)) @@ -143,6 +145,16 @@ var/datum/component/storage/concrete/master = master() return master? master.real_location() : null +/datum/component/storage/proc/canreach_react(list/next) + var/datum/component/storage/concrete/master = master() + if(!master) + return + . = COMPONENT_BLOCK_REACH + next += master.parent + for(var/i in master.slaves) + var/datum/component/storage/slave = i + next += slave.parent + /datum/component/storage/proc/attack_self(mob/M) if(locked) to_chat(M, "[parent] seems to be locked!") @@ -731,6 +743,10 @@ return user.visible_message("[user] draws [I] from [parent]!", "You draw [I] from [parent].") +/datum/component/storage/proc/action_trigger(datum/action/source) + gather_mode_switch(source.owner) + return COMPONENT_ACTION_BLOCK_TRIGGER + /datum/component/storage/proc/gather_mode_switch(mob/user) collection_mode = (collection_mode+1)%3 switch(collection_mode) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index c88a86c092..60bb24c8c2 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -214,13 +214,16 @@ if(!C) C = H.client var/image = get_id_photo(H, C, show_directions) - var/obj/item/photo/photo_front = new() - var/obj/item/photo/photo_side = new() - for(var/D in show_directions) - if(D == SOUTH) - photo_front.photocreate(null, icon(image, dir = D)) - if(D == WEST || D == EAST) - photo_side.photocreate(null, icon(image, dir = D)) + var/datum/picture/pf = new + var/datum/picture/ps = new + pf.picture_name = "[H]" + ps.picture_name = "[H]" + pf.picture_desc = "This is [H]." + ps.picture_desc = "This is [H]." + pf.picture_image = icon(image, dir = SOUTH) + ps.picture_image = icon(image, dir = WEST) + var/obj/item/photo/photo_front = new(null, pf) + var/obj/item/photo/photo_side = new(null, ps) //These records should ~really~ be merged or something //General Record diff --git a/code/datums/datum.dm b/code/datums/datum.dm index 376bb20707..88608d21ba 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -84,3 +84,67 @@ /datum/proc/to_chat_check_changed_vars(target = world) to_chat(target, txt_changed_vars()) #endif + +//Return a LIST for serialize_datum to encode! Not the actual json! +/datum/proc/serialize_list(list/options) + CRASH("Attempted to serialize datum [src] of type [type] without serialize_list being implemented!") + +//Accepts a LIST from deserialize_datum. Should return src or another datum. +/datum/proc/deserialize_list(json, list/options) + CRASH("Attempted to deserialize datum [src] of type [type] without deserialize_list being implemented!") + +//Serializes into JSON. Does not encode type. +/datum/proc/serialize_json(list/options) + . = serialize_list(options) + if(!islist(.)) + . = null + else + . = json_encode(.) + +//Deserializes from JSON. Does not parse type. +/datum/proc/deserialize_json(list/input, list/options) + var/list/jsonlist = json_decode(input) + . = deserialize_list(jsonlist) + if(!istype(., /datum)) + . = null + +/proc/json_serialize_datum(datum/D, list/options) + if(!istype(D)) + return + var/list/jsonlist = D.serialize_list(options) + if(islist(jsonlist)) + jsonlist["DATUM_TYPE"] = D.type + return json_encode(jsonlist) + +/proc/json_deserialize_datum(list/jsonlist, list/options, target_type, strict_target_type = FALSE) + if(!islist(jsonlist)) + if(!istext(jsonlist)) + CRASH("Invalid JSON") + return + jsonlist = json_decode(jsonlist) + if(!islist(jsonlist)) + CRASH("Invalid JSON") + return + if(!jsonlist["DATUM_TYPE"]) + return + if(!ispath(jsonlist["DATUM_TYPE"])) + if(!istext(jsonlist["DATUM_TYPE"])) + return + jsonlist["DATUM_TYPE"] = text2path(jsonlist["DATUM_TYPE"]) + if(!ispath(jsonlist["DATUM_TYPE"])) + return + if(target_type) + if(!ispath(target_type)) + return + if(strict_target_type) + if(target_type != jsonlist["DATUM_TYPE"]) + return + else if(!ispath(jsonlist["DATUM_TYPE"], target_type)) + return + var/typeofdatum = jsonlist["DATUM_TYPE"] //BYOND won't directly read if this is just put in the line below, and will instead runtime because it thinks you're trying to make a new list? + var/datum/D = new typeofdatum + var/datum/returned = D.deserialize_list(jsonlist, options) + if(!istype(returned, /datum)) + qdel(D) + else + return returned diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 086d8a0968..1e780d7f60 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -9,6 +9,7 @@ return FALSE vars[var_name] = var_value datum_flags |= DF_VAR_EDITED + return TRUE /datum/proc/vv_get_var(var_name) switch(var_name) @@ -167,139 +168,145 @@ } - +
@@ -326,7 +333,7 @@ Refresh" dat += "" dat += "" @@ -596,3 +596,4 @@ icon_screen = "medlaptop" icon_keyboard = "laptop_key" clockwork = TRUE //it'd look weird + pass_flags = PASSTABLE diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm index 166da28435..1c1944e73e 100644 --- a/code/game/machinery/computer/prisoner.dm +++ b/code/game/machinery/computer/prisoner.dm @@ -136,7 +136,7 @@ if(I && istype(I) && I.imp_in) var/mob/living/R = I.imp_in to_chat(R, "You hear a voice in your head saying: '[warning]'") - log_talk(usr,"[key_name(usr)] sent an implant message to [R]/[R.ckey]: '[warning]'",LOGSAY) + log_talk(usr,"[key_name(usr)] sent an implant message to [key_name(R)]: '[warning]'",LOGSAY) src.add_fingerprint(usr) src.updateUsrDialog() diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 8a2a06bf1f..bacedad6c0 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -38,6 +38,7 @@ icon_screen = "seclaptop" icon_keyboard = "laptop_key" clockwork = TRUE //it'd look weird + pass_flags = PASSTABLE /obj/machinery/computer/secure_data/attackby(obj/item/O, mob/user, params) if(istype(O, /obj/item/card/id)) @@ -182,10 +183,10 @@ if(istype(active1, /datum/data/record) && GLOB.data_core.general.Find(active1)) if(istype(active1.fields["photo_front"], /obj/item/photo)) var/obj/item/photo/P1 = active1.fields["photo_front"] - user << browse_rsc(P1.img, "photo_front") + user << browse_rsc(P1.picture.picture_image, "photo_front") if(istype(active1.fields["photo_side"], /obj/item/photo)) var/obj/item/photo/P2 = active1.fields["photo_side"] - user << browse_rsc(P2.img, "photo_side") + user << browse_rsc(P2.picture.picture_image, "photo_side") dat += {"
Name:[active1.fields["name"]]
@@ -446,7 +447,7 @@ What a mess.*/ sleep(30) if((istype(active1, /datum/data/record) && GLOB.data_core.general.Find(active1)))//make sure the record still exists. var/obj/item/photo/photo = active1.fields["photo_front"] - new /obj/item/poster/wanted(src.loc, photo.img, wanted_name, info) + new /obj/item/poster/wanted(loc, photo.picture.picture_image, wanted_name, info) printing = 0 //RECORD DELETE @@ -611,7 +612,7 @@ What a mess.*/ if(photo) qdel(active1.fields["photo_front"]) //Lets center it to a 32x32. - var/icon/I = photo.img + var/icon/I = photo.picture.picture_image var/w = I.Width() var/h = I.Height() var/dw = w - 32 @@ -622,7 +623,7 @@ What a mess.*/ if(active1.fields["photo_front"]) if(istype(active1.fields["photo_front"], /obj/item/photo)) var/obj/item/photo/P = active1.fields["photo_front"] - print_photo(P.img, active1.fields["name"]) + print_photo(P.picture.picture_image, active1.fields["name"]) if("show_photo_side") if(active1.fields["photo_side"]) if(istype(active1.fields["photo_side"], /obj/item/photo)) @@ -633,7 +634,7 @@ What a mess.*/ if(photo) qdel(active1.fields["photo_side"]) //Lets center it to a 32x32. - var/icon/I = photo.img + var/icon/I = photo.picture.picture_image var/w = I.Width() var/h = I.Height() var/dw = w - 32 @@ -644,7 +645,7 @@ What a mess.*/ if(active1.fields["photo_side"]) if(istype(active1.fields["photo_side"], /obj/item/photo)) var/obj/item/photo/P = active1.fields["photo_side"] - print_photo(P.img, active1.fields["name"]) + print_photo(P.picture.picture_image, active1.fields["name"]) if("mi_crim_add") if(istype(active1, /datum/data/record)) var/t1 = stripped_input(usr, "Please input minor crime names:", "Secure. records", "", null) @@ -759,10 +760,9 @@ What a mess.*/ var/obj/item/photo/P = null if(issilicon(user)) var/mob/living/silicon/tempAI = user - var/datum/picture/selection = tempAI.GetPhoto() + var/datum/picture/selection = tempAI.GetPhoto(user) if(selection) - P = new() - P.photocreate(selection.fields["icon"], selection.fields["img"], selection.fields["desc"]) + P = new(null, selection) else if(istype(user.get_active_held_item(), /obj/item/photo)) P = user.get_active_held_item() return P @@ -778,7 +778,7 @@ What a mess.*/ small_img.Scale(8, 8) ic.Blend(small_img,ICON_OVERLAY, 13, 13) P.icon = ic - P.img = temp + P.picture.picture_image = temp P.desc = "The photo on file for [name]." P.pixel_x = rand(-10, 10) P.pixel_y = rand(-10, 10) diff --git a/code/game/machinery/dish_drive.dm b/code/game/machinery/dish_drive.dm index 7e960d4ebc..66aa1347cb 100644 --- a/code/game/machinery/dish_drive.dm +++ b/code/game/machinery/dish_drive.dm @@ -9,6 +9,7 @@ active_power_usage = 13 //10 with default parts density = FALSE circuit = /obj/item/circuitboard/machine/dish_drive + pass_flags = PASSTABLE var/static/list/item_types = list(/obj/item/trash/waffles, /obj/item/trash/plate, /obj/item/trash/tray, diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 03eeb76632..5e5db86780 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1280,7 +1280,7 @@ bolt() //Bolt it! set_electrified(ELECTRIFIED_PERMANENT) //Shock it! if(origin) - LAZYADD(shockedby, "\[[time_stamp()]\][origin](ckey:[origin.ckey])") + LAZYADD(shockedby, "\[[time_stamp()]\] [key_name(origin)]") /obj/machinery/door/airlock/disable_lockdown() @@ -1549,7 +1549,7 @@ if(wires.is_cut(WIRE_SHOCK)) to_chat(user, "The electrification wire has been cut") else - LAZYADD(shockedby, "\[[time_stamp()]\][user](ckey:[user.ckey])") + LAZYADD(shockedby, "\[[time_stamp()]\] [key_name(user)]") add_logs(user, src, "electrified") set_electrified(AI_ELECTRIFY_DOOR_TIME) @@ -1559,7 +1559,7 @@ if(wires.is_cut(WIRE_SHOCK)) to_chat(user, "The electrification wire has been cut") else - LAZYADD(shockedby, text("\[[time_stamp()]\][user](ckey:[user.ckey])")) + LAZYADD(shockedby, text("\[[time_stamp()]\] [key_name(user)]")) add_logs(user, src, "electrified") set_electrified(ELECTRIFIED_PERMANENT) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 1b7c5fb3b1..f59b8d531e 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -70,8 +70,6 @@ layer = initial(layer) /obj/machinery/door/Destroy() - density = FALSE - air_update_turf(1) update_freelook_sight() GLOB.airlocks -= src if(spark_system) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index a1fd7ee8d7..97ab664b85 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -36,6 +36,10 @@ if(cable) debris += new /obj/item/stack/cable_coil(src, cable) +/obj/machinery/door/window/ComponentInitialize() + . = ..() + AddComponent(/datum/component/ntnet_interface) + /obj/machinery/door/window/Destroy() density = FALSE QDEL_LIST(debris) @@ -298,6 +302,35 @@ if("deny") flick("[src.base_state]deny", src) +/obj/machinery/door/window/check_access_ntnet(datum/netdata/data) + return !requiresID() || ..() + +/obj/machinery/door/window/ntnet_receive(datum/netdata/data) + // Check if the airlock is powered. + if(!hasPower()) + return + + // Check packet access level. + if(!check_access_ntnet(data)) + return + + // Handle received packet. + var/command = lowertext(data.data["data"]) + var/command_value = lowertext(data.data["data_secondary"]) + switch(command) + if("open") + if(command_value == "on" && !density) + return + + if(command_value == "off" && density) + return + + if(density) + INVOKE_ASYNC(src, .proc/open) + else + INVOKE_ASYNC(src, .proc/close) + if("touch") + INVOKE_ASYNC(src, .proc/open_and_close) /obj/machinery/door/window/brigdoor name = "secure door" diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 34a5659f3f..c3ce4c6a01 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -285,3 +285,40 @@ set_light(l_power = 0.8) else set_light(l_power = 0) + +/* + * Return of Party button + */ + +/area + var/party = FALSE + +/obj/machinery/firealarm/partyalarm + name = "\improper PARTY BUTTON" + desc = "Cuban Pete is in the house!" + var/static/party_overlay + +/obj/machinery/firealarm/partyalarm/reset() + if (stat & (NOPOWER|BROKEN)) + return + var/area/A = get_area(src) + if (!A || !A.party) + return + A.party = FALSE + A.cut_overlay(party_overlay) + +/obj/machinery/firealarm/partyalarm/alarm() + if (stat & (NOPOWER|BROKEN)) + return + var/area/A = get_area(src) + if (!A || A.party || A.name == "Space") + return + A.party = TRUE + if (!party_overlay) + party_overlay = iconstate2appearance('icons/turf/areas.dmi', "party") + A.add_overlay(party_overlay) + +/obj/machinery/firealarm/partyalarm/ui_data(mob/user) + . = ..() + var/area/A = get_area(src) + .["alarm"] = A && A.party diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 089abdb26b..12516c603d 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -100,19 +100,23 @@ if(!bulb.flash_recharge(30)) //Bulb can burn out if it's used too often too fast power_change() return - bulb.times_used ++ playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1) flick("[base_state]_flash", src) last_flash = world.time use_power(1000) + var/flashed = FALSE for (var/mob/living/L in viewers(src, null)) if (get_dist(src, L) > range) continue if(L.flash_act(affect_silicon = 1)) L.Knockdown(strength) + flashed = TRUE + + if(flashed) + bulb.times_used++ return 1 diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm new file mode 100644 index 0000000000..ce78929855 --- /dev/null +++ b/code/game/machinery/harvester.dm @@ -0,0 +1,178 @@ +/obj/machinery/harvester + name = "organ harvester" + desc = "An advanced machine used for harvesting organs and limbs from the deceased." + density = TRUE + icon = 'icons/obj/machines/harvester.dmi' + icon_state = "harvester" + verb_say = "states" + state_open = FALSE + idle_power_usage = 50 + circuit = /obj/item/circuitboard/machine/harvester + light_color = LIGHT_COLOR_BLUE + var/interval = 20 + var/harvesting = FALSE + var/list/operation_order = list() //Order of wich we harvest limbs. + var/allow_clothing = FALSE + var/allow_living = FALSE + +/obj/machinery/harvester/Initialize() + . = ..() + if(prob(1)) + name = "auto-autopsy" + +/obj/machinery/harvester/RefreshParts() + interval = 0 + var/max_time = 40 + for(var/obj/item/stock_parts/micro_laser/L in component_parts) + max_time -= L.rating + interval = max(max_time,1) + +/obj/machinery/harvester/update_icon(warming_up) + if(warming_up) + icon_state = initial(icon_state)+"-charging" + return + if(state_open) + icon_state = initial(icon_state)+"-open" + else if(harvesting) + icon_state = initial(icon_state)+"-active" + else + icon_state = initial(icon_state) + +/obj/machinery/harvester/open_machine(drop = TRUE) + if(panel_open) + return + . = ..() + harvesting = FALSE + +/obj/machinery/harvester/attack_hand(mob/user) + if(state_open) + close_machine() + else if(!harvesting) + open_machine() + +/obj/machinery/harvester/AltClick(mob/user) + if(harvesting || !user || !isliving(user) || state_open) + return + if(can_harvest()) + start_harvest() + +/obj/machinery/harvester/proc/can_harvest() + if(!powered(EQUIP) || state_open || !occupant || !iscarbon(occupant)) + return + var/mob/living/carbon/C = occupant + if(!allow_clothing) + for(var/A in C.held_items + C.get_equipped_items()) + if(!isitem(A)) + continue + var/obj/item/I = A + if(!(I.item_flags & NODROP)) + say("Subject may not have abiotic items on.") + playsound(src, 'sound/machines/buzz-sigh.ogg', 30, 1) + return + if(!(MOB_ORGANIC in C.mob_biotypes)) + say("Subject is not organic.") + playsound(src, 'sound/machines/buzz-sigh.ogg', 30, 1) + return + if(!allow_living && !(C.stat == DEAD || C.has_trait(TRAIT_FAKEDEATH))) //I mean, the machines scanners arent advanced enough to tell you're alive + say("Subject is still alive.") + playsound(src, 'sound/machines/buzz-sigh.ogg', 30, 1) + return + return TRUE + +/obj/machinery/harvester/proc/start_harvest() + if(!occupant || !iscarbon(occupant)) + return + var/mob/living/carbon/C = occupant + operation_order = reverseList(C.bodyparts) //Chest and head are first in bodyparts, so we invert it to make them suffer more + harvesting = TRUE + visible_message("The [name] begins warming up!") + update_icon(TRUE) + addtimer(CALLBACK(src, .proc/harvest), interval) + +/obj/machinery/harvester/proc/harvest() + update_icon() + if(!harvesting || state_open || !powered(EQUIP) || !occupant || !iscarbon(occupant)) + return + playsound(src, 'sound/machines/juicer.ogg', 20, 1) + var/mob/living/carbon/C = occupant + if(!LAZYLEN(operation_order)) //The list is empty, so we're done here + end_harvesting() + return + var/turf/target + for(var/adir in list(EAST,NORTH,SOUTH,WEST)) + var/turf/T = get_step(src,adir) + if(!T) + continue + if(istype(T, /turf/closed)) + continue + target = T + break + if(!target) + target = get_turf(src) + for(var/obj/item/bodypart/BP in operation_order) //first we do non-essential limbs + BP.drop_limb() + C.emote("scream") + if(BP.body_zone != "chest") + BP.forceMove(target) //Move the limbs right next to it, except chest, that's a weird one + BP.drop_organs() + else + for(var/obj/item/organ/O in BP.dismember()) + O.forceMove(target) //Some organs, like chest ones, are different so we need to manually move them + operation_order.Remove(BP) + break + use_power(5000) + addtimer(CALLBACK(src, .proc/harvest), interval) + +/obj/machinery/harvester/proc/end_harvesting() + harvesting = FALSE + open_machine() + say("Subject has been succesfuly harvested.") + playsound(src, 'sound/machines/microwave/microwave-end.ogg', 100, 0) + +/obj/machinery/harvester/screwdriver_act(mob/living/user, obj/item/I) + if(!state_open && !occupant) + if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-o", initial(icon_state), I)) + return + +/obj/machinery/harvester/crowbar_act(mob/living/user, obj/item/I) + if(default_pry_open(I)) + return + if(default_deconstruction_crowbar(I)) + return + +/obj/machinery/harvester/default_pry_open(obj/item/I) //wew + . = !(state_open || panel_open || (flags_1 & NODECONSTRUCT_1)) && I.tool_behaviour == TOOL_CROWBAR //We removed is_operational() here + if(.) + I.play_tool_sound(src, 50) + visible_message("[usr] pries open \the [src].", "You pry open [src].") + open_machine() + +/obj/machinery/harvester/emag_act(mob/user) + if(obj_flags & EMAGGED) + return + obj_flags |= EMAGGED + allow_living = TRUE + to_chat(user, "You overload [src]'s lifesign scanners.") + +/obj/machinery/harvester/container_resist(mob/living/user) + if(!harvesting) + visible_message("[occupant] emerges from [src]!", + "You climb out of [src]!") + open_machine() + else + to_chat(user,"[src] is active and can't be opened!") //rip + +/obj/machinery/harvester/Exited(atom/movable/user) + if (!state_open && user == occupant) + container_resist(user) + +/obj/machinery/harvester/relaymove(mob/user) + if (!state_open) + container_resist(user) + +/obj/machinery/harvester/examine(mob/user) + ..() + if(state_open) + to_chat(user, "[src] must be closed before harvesting.") + else + to_chat(user, "Alt-click [src] to start harvesting.") diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index aa847a4624..3fe68255dd 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -118,17 +118,17 @@ GLOBAL_LIST_EMPTY(allCasters) newChannel.is_admin_channel = adminChannel network_channels += newChannel -/datum/newscaster/feed_network/proc/SubmitArticle(msg, author, channel_name, obj/item/photo/photo, adminMessage = 0, allow_comments = 1) +/datum/newscaster/feed_network/proc/SubmitArticle(msg, author, channel_name, datum/picture/picture, adminMessage = 0, allow_comments = 1) var/datum/newscaster/feed_message/newMsg = new /datum/newscaster/feed_message newMsg.author = author newMsg.body = msg newMsg.time_stamp = "[station_time_timestamp()]" newMsg.is_admin_message = adminMessage newMsg.locked = !allow_comments - if(photo) - newMsg.img = photo.img - newMsg.caption = photo.scribble - newMsg.photo_file = save_photo(photo.img) + if(picture) + newMsg.img = picture.picture_image + newMsg.caption = picture.caption + newMsg.photo_file = save_photo(picture.picture_image) for(var/datum/newscaster/feed_channel/FC in network_channels) if(FC.channel_name == channel_name) FC.messages += newMsg @@ -138,15 +138,15 @@ GLOBAL_LIST_EMPTY(allCasters) lastAction ++ newMsg.creationTime = lastAction -/datum/newscaster/feed_network/proc/submitWanted(criminal, body, scanned_user, obj/item/photo/photo, adminMsg = 0, newMessage = 0) +/datum/newscaster/feed_network/proc/submitWanted(criminal, body, scanned_user, datum/picture/picture, adminMsg = 0, newMessage = 0) wanted_issue.active = 1 wanted_issue.criminal = criminal wanted_issue.body = body wanted_issue.scannedUser = scanned_user wanted_issue.isAdminMsg = adminMsg - if(photo) - wanted_issue.img = photo.img - wanted_issue.photo_file = save_photo(photo.img) + if(picture) + wanted_issue.img = picture.picture_image + wanted_issue.photo_file = save_photo(picture.picture_image) if(newMessage) for(var/obj/machinery/newscaster/N in GLOB.allCasters) N.newsAlert() @@ -197,7 +197,7 @@ GLOBAL_LIST_EMPTY(allCasters) var/alert = FALSE var/scanned_user = "Unknown" var/msg = "" - var/obj/item/photo/photo = null + var/datum/picture/picture var/channel_name = "" var/c_locked=0 var/datum/newscaster/feed_channel/viewing_channel = null @@ -221,7 +221,7 @@ GLOBAL_LIST_EMPTY(allCasters) /obj/machinery/newscaster/Destroy() GLOB.allCasters -= src viewing_channel = null - photo = null + picture = null return ..() /obj/machinery/newscaster/update_icon() @@ -298,7 +298,7 @@ GLOBAL_LIST_EMPTY(allCasters) if(CHANNEL.is_admin_channel) dat+="[CHANNEL.channel_name]
" else - dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ()]
" + dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ""]
" dat+="

Refresh" dat+="
Back" if(2) @@ -312,7 +312,7 @@ GLOBAL_LIST_EMPTY(allCasters) dat+="
Receiving Channel: [channel_name]
" dat+="Message Author:[scanned_user]
" dat+="Message Body:
[parsemarkdown(msg, user)]
" - dat+="Attach Photo: [(photo ? "Photo Attached" : "No Photo")]
" + dat+="Attach Photo: [(picture ? "Photo Attached" : "No Photo")]
" dat+="Comments [allow_comments ? "Enabled" : "Disabled"]
" dat+="
Submit

Cancel
" if(4) @@ -403,7 +403,7 @@ GLOBAL_LIST_EMPTY(allCasters) dat+="No feed channels found active...
" else for(var/datum/newscaster/feed_channel/CHANNEL in GLOB.news_network.network_channels) - dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ()]
" + dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ""]
" dat+="
Cancel" if(11) dat+="Nanotrasen D-Notice Handler
" @@ -414,7 +414,7 @@ GLOBAL_LIST_EMPTY(allCasters) dat+="No feed channels found active...
" else for(var/datum/newscaster/feed_channel/CHANNEL in GLOB.news_network.network_channels) - dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ()]
" + dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ""]
" dat+="
Back" if(12) dat+="[viewing_channel.channel_name]: \[ created by: [viewing_channel.returnAuthor(-1)] \]
" @@ -454,7 +454,7 @@ GLOBAL_LIST_EMPTY(allCasters) dat+="
" dat+="Criminal Name: [channel_name]
" dat+="Description: [msg]
" - dat+="Attach Photo: [(photo ? "Photo Attached" : "No Photo")]
" + dat+="Attach Photo: [(picture ? "Photo Attached" : "No Photo")]
" if(wanted_already) dat+="Wanted Issue created by:[GLOB.news_network.wanted_issue.scannedUser]
" else @@ -561,7 +561,7 @@ GLOBAL_LIST_EMPTY(allCasters) if(msg =="" || msg=="\[REDACTED\]" || scanned_user == "Unknown" || channel_name == "" ) screen=6 else - GLOB.news_network.SubmitArticle("[parsemarkdown(msg, usr)]", scanned_user, channel_name, photo, 0, allow_comments) + GLOB.news_network.SubmitArticle("[parsemarkdown(msg, usr)]", scanned_user, channel_name, picture, 0, allow_comments) SSblackbox.record_feedback("amount", "newscaster_stories", 1) screen=4 msg = "" @@ -612,13 +612,13 @@ GLOBAL_LIST_EMPTY(allCasters) if(choice=="Confirm") scan_user(usr) if(input_param==1) //If input_param == 1 we're submitting a new wanted issue. At 2 we're just editing an existing one. - GLOB.news_network.submitWanted(channel_name, msg, scanned_user, photo, 0 , 1) + GLOB.news_network.submitWanted(channel_name, msg, scanned_user, picture, 0 , 1) screen = 15 else if(GLOB.news_network.wanted_issue.isAdminMsg) alert("The wanted issue has been distributed by a Nanotrasen higherup. You cannot edit it.","Ok") return - GLOB.news_network.submitWanted(channel_name, msg, scanned_user, photo) + GLOB.news_network.submitWanted(channel_name, msg, scanned_user, picture) screen = 19 updateUsrDialog() else if(href_list["cancel_wanted"]) @@ -703,9 +703,10 @@ GLOBAL_LIST_EMPTY(allCasters) else if(href_list["del_comment"]) var/datum/newscaster/feed_comment/FC = locate(href_list["del_comment"]) var/datum/newscaster/feed_message/FM = locate(href_list["del_comment_msg"]) - FM.comments -= FC - qdel(FC) - updateUsrDialog() + if(istype(FC) && istype(FM)) + FM.comments -= FC + qdel(FC) + updateUsrDialog() else if(href_list["lock_comment"]) var/datum/newscaster/feed_message/FM = locate(href_list["lock_comment"]) FM.locked ^= 1 @@ -782,22 +783,11 @@ GLOBAL_LIST_EMPTY(allCasters) take_damage(5, BRUTE, "melee") /obj/machinery/newscaster/proc/AttachPhoto(mob/user) + var/obj/item/photo/photo = user.is_holding_item_of_type(/obj/item/photo) if(photo) - if(!photo.sillynewscastervar) - photo.forceMove(drop_location()) - if(!issilicon(user)) - user.put_in_inactive_hand(photo) - else - qdel(photo) - photo = null - photo = user.is_holding_item_of_type(/obj/item/photo) - if(photo && !user.transferItemToLoc(photo, src)) - photo = null + picture = photo.picture if(issilicon(user)) - var/list/nametemp = list() - var/find - var/datum/picture/selection - var/obj/item/camera/siliconcam/targetcam = null + var/obj/item/camera/siliconcam/targetcam if(isAI(user)) var/mob/living/silicon/ai/R = user targetcam = R.aicamera @@ -809,21 +799,12 @@ GLOBAL_LIST_EMPTY(allCasters) targetcam = R.aicamera else to_chat(user, "You cannot interface with silicon photo uploading!") - if(targetcam.aipictures.len == 0) + if(!targetcam.stored.len) to_chat(usr, "No images saved") return - for(var/datum/picture/t in targetcam.aipictures) - nametemp += t.fields["name"] - find = input("Select image (numbered in order taken)") in nametemp - var/obj/item/photo/P = new/obj/item/photo() - for(var/datum/picture/q in targetcam.aipictures) - if(q.fields["name"] == find) - selection = q - break - P.photocreate(selection.fields["icon"], selection.fields["img"], selection.fields["desc"]) - P.sillynewscastervar = 1 - photo = P - qdel(P) + var/datum/picture/selection = targetcam.selectpicture(user) + if(selection) + picture = selection /obj/machinery/newscaster/proc/scan_user(mob/living/user) if(ishuman(user)) diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 22bba56fd2..94b6eee8aa 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -7,6 +7,7 @@ idle_power_usage = 4 active_power_usage = 250 circuit = /obj/item/circuitboard/machine/recharger + pass_flags = PASSTABLE var/obj/item/charging = null var/recharge_coeff = 1 diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 798c27214d..68e74b1ad7 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -15,11 +15,6 @@ setDir(pick(GLOB.cardinals)) air_update_turf(1) -/obj/structure/emergency_shield/Destroy() - density = FALSE - air_update_turf(1) - return ..() - /obj/structure/emergency_shield/Move() var/turf/T = loc . = ..() diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 82ccadf5cc..2263e1c4d6 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -1,7 +1,7 @@ // SUIT STORAGE UNIT ///////////////// /obj/machinery/suit_storage_unit name = "suit storage unit" - desc = "An industrial unit made to hold space suits. It comes with a built-in UV cauterization mechanism. A small warning label advises that organic matter should not be placed into the unit." + desc = "An industrial unit made to hold and decontaminate irradiated equipment. It comes with a built-in UV cauterization mechanism. A small warning label advises that organic matter should not be placed into the unit." icon = 'icons/obj/machines/suit_storage.dmi' icon_state = "close" density = TRUE diff --git a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm index 0873ad2df6..e469499790 100644 --- a/code/game/machinery/telecomms/broadcasting.dm +++ b/code/game/machinery/telecomms/broadcasting.dm @@ -190,4 +190,15 @@ if(length(receive)) SSblackbox.LogBroadcast(frequency) + var/spans_part = "" + if(length(spans)) + spans_part = "(" + for(var/S in spans) + spans_part = "[spans_part] [S]" + spans_part = "[spans_part] ) " + + var/lang_name = data["language"] + + log_telecomms("[datum_info_line(virt.source)] : \[[get_radio_name(frequency)]\] [spans_part]\"[message]\" language: [lang_name] at [atom_loc_line(get_turf(src.source))]") + QDEL_IN(virt, 50) // Make extra sure the virtualspeaker gets qdeleted diff --git a/code/game/machinery/telecomms/computers/message.dm b/code/game/machinery/telecomms/computers/message.dm index 74881cb064..5996bcea6b 100644 --- a/code/game/machinery/telecomms/computers/message.dm +++ b/code/game/machinery/telecomms/computers/message.dm @@ -141,7 +141,7 @@ break // Del - Sender - Recepient - Message // X - Al Green - Your Mom - WHAT UP!? - dat += "" + dat += "" dat += "
Name: [active1.fields["name"]] 
ID: [active1.fields["id"]] 
X
[pda.sender][pda.recipient][pda.message][pda.photo ? " (Photo)":""]
X
[pda.sender][pda.recipient][pda.message][pda.picture ? " (Photo)":""]
" //Hacking screen. if(2) diff --git a/code/game/machinery/telecomms/machines/message_server.dm b/code/game/machinery/telecomms/machines/message_server.dm index 45661add0d..3b2dbed96f 100644 --- a/code/game/machinery/telecomms/machines/message_server.dm +++ b/code/game/machinery/telecomms/machines/message_server.dm @@ -124,7 +124,7 @@ var/sender = "Unspecified" var/recipient = "Unspecified" var/message = "Blank" // transferred message - var/icon/photo // attached photo + var/datum/picture/picture // attached photo /datum/data_pda_msg/New(param_rec, param_sender, param_message, param_photo) if(param_rec) @@ -134,17 +134,17 @@ if(param_message) message = param_message if(param_photo) - photo = param_photo + picture = param_photo /datum/data_pda_msg/Topic(href,href_list) ..() if(href_list["photo"]) var/mob/M = usr - M << browse_rsc(photo, "pda_photo.png") + M << browse_rsc(picture.picture_image, "pda_photo.png") M << browse("PDA Photo" \ + "" \ + "" \ - + "", "window=pdaphoto;size=192x192") + + "", "window=pdaphoto;size=[picture.psize_x]x[picture.psize_y]") onclose(M, "pdaphoto") /datum/data_rc_msg diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 56377e5a1f..0a9a135986 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -13,7 +13,7 @@ /obj/machinery/washing_machine/ComponentInitialize() . = ..() - AddComponent(/datum/component/redirect, list(COMSIG_COMPONENT_CLEAN_ACT), CALLBACK(src, .proc/clean_blood)) + AddComponent(/datum/component/redirect, list(COMSIG_COMPONENT_CLEAN_ACT = CALLBACK(src, .proc/clean_blood))) /obj/machinery/washing_machine/examine(mob/user) ..() @@ -40,6 +40,24 @@ busy = TRUE update_icon() addtimer(CALLBACK(src, .proc/wash_cycle), 200) + START_PROCESSING(SSfastprocess, src) + +/obj/machinery/washing_machine/process() + if (!busy) + animate(src, transform=matrix(), time=2) + return PROCESS_KILL + if (anchored) + if (prob(5)) + var/matrix/M = new + M.Translate(rand(-1, 1), rand(0, 1)) + animate(src, transform=M, time=1) + animate(transform=matrix(), time=1) + else + if (prob(1)) + step(src, pick(GLOB.cardinals)) + var/matrix/M = new + M.Translate(rand(-3, 3), rand(-1, 3)) + animate(src, transform=M, time=2) /obj/machinery/washing_machine/proc/clean_blood() if(!busy) @@ -188,6 +206,9 @@ add_overlay("wm_panel") /obj/machinery/washing_machine/attackby(obj/item/W, mob/user, params) + if(panel_open && !busy && default_unfasten_wrench(user, W)) + return + if(default_deconstruction_screwdriver(user, null, null, W)) update_icon() return diff --git a/code/game/mecha/combat/honker.dm b/code/game/mecha/combat/honker.dm index 0298e56089..125aecd667 100644 --- a/code/game/mecha/combat/honker.dm +++ b/code/game/mecha/combat/honker.dm @@ -99,6 +99,10 @@
Sounds of HONK:
"} @@ -133,6 +137,14 @@ switch(href_list["play_sound"]) if("sadtrombone") playsound(src, 'sound/misc/sadtrombone.ogg', 50) + if("bikehorn") + playsound(src, 'sound/items/bikehorn.ogg', 50) + if("airhorn2") + playsound(src, 'sound/items/airhorn2.ogg', 40) //soundfile has higher than average volume + if("carhorn") + playsound(src, 'sound/items/carhorn.ogg', 80) //soundfile has lower than average volume + if("party_horn") + playsound(src, 'sound/items/party_horn.ogg', 50) return /proc/rand_hex_color() diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm index b7796849f1..1a3886c3df 100644 --- a/code/game/mecha/equipment/tools/other_tools.dm +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -468,7 +468,7 @@ fuel_per_cycle_idle = 10 fuel_per_cycle_active = 30 power_per_cycle = 50 - var/rad_per_cycle = 3 + var/rad_per_cycle = 30 /obj/item/mecha_parts/mecha_equipment/generator/nuclear/generator_init() fuel = new /obj/item/stack/sheet/mineral/uranium(src, 0) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 844cc876ce..1b03efc62e 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -410,7 +410,7 @@ for(var/mob/M in get_hearers_in_view(7,src)) if(M.client) speech_bubble_recipients.Add(M.client) - INVOKE_ASYNC(GLOBAL_PROC, /.proc/flick_overlay, image('icons/mob/talk.dmi', src, "machine[say_test(raw_message)]",MOB_LAYER+1), speech_bubble_recipients, 30) + INVOKE_ASYNC(GLOBAL_PROC, /proc/flick_overlay, image('icons/mob/talk.dmi', src, "machine[say_test(raw_message)]",MOB_LAYER+1), speech_bubble_recipients, 30) //////////////////////////// ///// Action processing //// diff --git a/code/game/mecha/mecha_actions.dm b/code/game/mecha/mecha_actions.dm index eee71818c5..6d42c302e1 100644 --- a/code/game/mecha/mecha_actions.dm +++ b/code/game/mecha/mecha_actions.dm @@ -265,7 +265,7 @@ if("fire") new_damtype = "tox" chassis.occupant_message("A bone-chillingly thick plasteel needle protracts from the exosuit's palm.") - chassis.damtype = new_damtype. + chassis.damtype = new_damtype button_icon_state = "mech_damtype_[new_damtype]" playsound(src, 'sound/mecha/mechmove01.ogg', 50, 1) UpdateButtonIcon() diff --git a/code/game/mecha/medical/odysseus.dm b/code/game/mecha/medical/odysseus.dm index 7725d3c6e5..b6a4ac2390 100644 --- a/code/game/mecha/medical/odysseus.dm +++ b/code/game/mecha/medical/odysseus.dm @@ -2,7 +2,7 @@ desc = "These exosuits are developed and produced by Vey-Med. (© All rights reserved)." name = "\improper Odysseus" icon_state = "odysseus" - step_in = 3 + step_in = 2 max_temperature = 15000 max_integrity = 120 wreckage = /obj/structure/mecha_wreckage/odysseus diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index ca70c4d7f9..07152b0310 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -72,7 +72,7 @@ ..() if(ishuman(O)) var/mob/living/carbon/human/H = O - if(H.shoes && blood_state && bloodiness) + if(H.shoes && blood_state && bloodiness && !H.has_trait(TRAIT_LIGHT_STEP)) var/obj/item/clothing/shoes/S = H.shoes var/add_blood = 0 if(bloodiness >= BLOOD_GAIN_PER_STEP) diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index e7b7472e86..264715e2ac 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -274,12 +274,6 @@ . = ..() air_update_turf(1) - -/obj/structure/foamedmetal/Destroy() - density = FALSE - air_update_turf(1) - return ..() - /obj/structure/foamedmetal/Move() var/turf/T = loc . = ..() diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm index daf288f74c..e8e833890b 100644 --- a/code/game/objects/effects/effect_system/effects_smoke.dm +++ b/code/game/objects/effects/effect_system/effects_smoke.dm @@ -289,17 +289,15 @@ contained = "\[[contained]\]" var/where = "[AREACOORD(location)]" - var/whereLink = "[where]" - if(carry.my_atom.fingerprintslast) var/mob/M = get_mob_by_key(carry.my_atom.fingerprintslast) var/more = "" if(M) more = "[ADMIN_LOOKUPFLW(M)] " - message_admins("Smoke: ([whereLink])[contained]. Key: [more ? more : carry.my_atom.fingerprintslast].") + message_admins("Smoke: ([ADMIN_VERBOSEJMP(location)])[contained]. Key: [more ? more : carry.my_atom.fingerprintslast].") log_game("A chemical smoke reaction has taken place in ([where])[contained]. Last touched by [carry.my_atom.fingerprintslast].") else - message_admins("Smoke: ([whereLink])[contained]. No associated key.") + message_admins("Smoke: ([ADMIN_VERBOSEJMP(location)])[contained]. No associated key.") log_game("A chemical smoke reaction has taken place in ([where])[contained]. No associated key.") diff --git a/code/game/objects/effects/effect_system/effects_sparks.dm b/code/game/objects/effects/effect_system/effects_sparks.dm index c0aaeaf228..c04acf79a6 100644 --- a/code/game/objects/effects/effect_system/effects_sparks.dm +++ b/code/game/objects/effects/effect_system/effects_sparks.dm @@ -28,20 +28,20 @@ playsound(src.loc, "sparks", 100, 1) var/turf/T = loc if(isturf(T)) - T.hotspot_expose(35,5) + T.hotspot_expose(300,5) QDEL_IN(src, 20) /obj/effect/particle_effect/sparks/Destroy() var/turf/T = loc if(isturf(T)) - T.hotspot_expose(35,1) + T.hotspot_expose(300,1) return ..() /obj/effect/particle_effect/sparks/Move() ..() var/turf/T = loc if(isturf(T)) - T.hotspot_expose(35,1) + T.hotspot_expose(300,1) /datum/effect_system/spark_spread effect_type = /obj/effect/particle_effect/sparks diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index e3a5c85719..dbcb8c987c 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -27,6 +27,7 @@ var/turf/open/atmos_destination //Atmos link destination var/allow_anchored = FALSE var/innate_accuracy_penalty = 0 + var/last_effect = 0 /obj/effect/portal/anom name = "wormhole" @@ -154,7 +155,12 @@ return if(ismegafauna(M)) message_admins("[M] has used a portal at [ADMIN_VERBOSEJMP(src)] made by [usr].") - if(do_teleport(M, real_target, innate_accuracy_penalty)) + var/no_effect = FALSE + if(last_effect == world.time) + no_effect = TRUE + else + last_effect = world.time + if(do_teleport(M, real_target, innate_accuracy_penalty, no_effects = no_effect)) if(istype(M, /obj/item/projectile)) var/obj/item/projectile/P = M P.ignore_source_check = TRUE diff --git a/code/game/objects/effects/proximity.dm b/code/game/objects/effects/proximity.dm index 8cd23f2cf8..de17582f27 100644 --- a/code/game/objects/effects/proximity.dm +++ b/code/game/objects/effects/proximity.dm @@ -23,7 +23,7 @@ last_host_loc = host.loc if(movement_tracker) QDEL_NULL(movement_tracker) - movement_tracker = host.AddComponent(/datum/component/redirect, COMSIG_MOVABLE_MOVED, CALLBACK(src, .proc/HandleMove)) + movement_tracker = host.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, .proc/HandleMove))) SetRange(current_range,TRUE) /datum/proximity_monitor/Destroy() diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index bd4237a9db..4a77274d23 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -41,6 +41,13 @@ /obj/item/gun/ballistic/automatic/pistol/deagle ) +/obj/effect/spawner/lootdrop/armory_contraband/metastation + 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/gambling name = "gambling valuables spawner" loot = list( @@ -228,7 +235,7 @@ /obj/item/circuitboard/machine/microwave, /obj/item/circuitboard/machine/chem_dispenser/drinks, /obj/item/circuitboard/machine/chem_dispenser/drinks/beer, - /obj/item/circuitboard/computer/slot_machine + /obj/item/circuitboard/computer/slot_machine ) /obj/effect/spawner/lootdrop/techstorage/rnd @@ -237,14 +244,14 @@ loot = list( /obj/item/circuitboard/computer/aifixer, /obj/item/circuitboard/machine/rdserver, - /obj/item/circuitboard/computer/pandemic, + /obj/item/circuitboard/computer/pandemic, /obj/item/circuitboard/machine/mechfab, /obj/item/circuitboard/machine/circuit_imprinter/department, /obj/item/circuitboard/computer/teleporter, - /obj/item/circuitboard/machine/destructive_analyzer, + /obj/item/circuitboard/machine/destructive_analyzer, /obj/item/circuitboard/computer/rdconsole ) - + /obj/effect/spawner/lootdrop/techstorage/security name = "security circuit board spawner" lootcount = 3 @@ -253,13 +260,13 @@ /obj/item/circuitboard/computer/security, /obj/item/circuitboard/computer/prisoner ) - + /obj/effect/spawner/lootdrop/techstorage/engineering name = "engineering circuit board spawner" lootcount = 3 loot = list( /obj/item/circuitboard/computer/atmos_alert, - /obj/item/circuitboard/computer/stationalert, + /obj/item/circuitboard/computer/stationalert, /obj/item/circuitboard/computer/powermonitor ) @@ -300,7 +307,7 @@ /obj/item/circuitboard/computer/borgupload, /obj/item/circuitboard/aicore ) - + /obj/effect/spawner/lootdrop/techstorage/command name = "secure command circuit board spawner" lootcount = 3 @@ -309,7 +316,7 @@ /obj/item/circuitboard/computer/communications, /obj/item/circuitboard/computer/card ) - + /obj/effect/spawner/lootdrop/techstorage/RnD_secure name = "secure RnD circuit board spawner" lootcount = 3 diff --git a/code/game/objects/effects/spawners/xeno_egg_delivery.dm b/code/game/objects/effects/spawners/xeno_egg_delivery.dm index a41f4b4c9b..9be52dab52 100644 --- a/code/game/objects/effects/spawners/xeno_egg_delivery.dm +++ b/code/game/objects/effects/spawners/xeno_egg_delivery.dm @@ -15,5 +15,5 @@ message_admins("An alien egg has been delivered to [ADMIN_VERBOSEJMP(T)].") log_game("An alien egg has been delivered to [AREACOORD(T)]") var/message = "Attention [station_name()], we have entrusted you with a research specimen in [get_area_name(T, TRUE)]. Remember to follow all safety precautions when dealing with the specimen." - SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/addtimer, CALLBACK(GLOBAL_PROC, /.proc/print_command_report, message), announcement_time)) + SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/addtimer, CALLBACK(GLOBAL_PROC, /proc/print_command_report, message), announcement_time)) return INITIALIZE_HINT_QDEL diff --git a/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm b/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm index dee1affd84..103cee137d 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm @@ -4,9 +4,6 @@ icon_state = "nothing" layer = ABOVE_MOB_LAYER anchored = TRUE - light_power = 1 - light_range = 2 - light_color = "#00ffff" mouse_opacity = MOUSE_OPACITY_TRANSPARENT appearance_flags = 0 @@ -53,3 +50,11 @@ for(var/i in 1 to increment) pixel_x += round((sin(angle_override)+16*sin(angle_override)*2), 1) pixel_y += round((cos(angle_override)+16*cos(angle_override)*2), 1) + +/obj/effect/projectile_lighting + var/owner + +/obj/effect/projectile_lighting/Initialize(mapload, color, range, intensity, owner_key) + . = ..() + set_light(range, intensity, color) + owner = owner_key diff --git a/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm b/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm index 3b8148dba3..767e8c141a 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm @@ -1,10 +1,22 @@ -/proc/generate_tracer_between_points(datum/point/starting, datum/point/ending, beam_type, color, qdel_in = 5) //Do not pass z-crossing points as that will not be properly (and likely will never be properly until it's absolutely needed) supported! +/proc/generate_tracer_between_points(datum/point/starting, datum/point/ending, beam_type, color, qdel_in = 5, light_range = 2, light_color_override, light_intensity = 1, instance_key) //Do not pass z-crossing points as that will not be properly (and likely will never be properly until it's absolutely needed) supported! if(!istype(starting) || !istype(ending) || !ispath(beam_type)) return var/datum/point/midpoint = point_midpoint_points(starting, ending) var/obj/effect/projectile/tracer/PB = new beam_type + if(isnull(light_color_override)) + light_color_override = color PB.apply_vars(angle_between_points(starting, ending), midpoint.return_px(), midpoint.return_py(), color, pixel_length_between_points(starting, ending) / world.icon_size, midpoint.return_turf(), 0) . = PB + if(light_range > 0 && light_intensity > 0) + var/list/turf/line = getline(starting.return_turf(), ending.return_turf()) + tracing_line: + for(var/i in line) + var/turf/T = i + for(var/obj/effect/projectile_lighting/PL in T) + if(PL.owner == instance_key) + continue tracing_line + QDEL_IN(new /obj/effect/projectile_lighting(T, light_color_override, light_range, light_intensity, instance_key), qdel_in > 0? qdel_in : 5) + line = null if(qdel_in) QDEL_IN(PB, qdel_in) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 09c891d6e7..7604d4074b 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -295,7 +295,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) pickup(user) add_fingerprint(user) - if(!user.put_in_active_hand(src)) + if(!user.put_in_active_hand(src, FALSE, FALSE)) user.dropItemToGround(src) /obj/item/proc/allow_attack_hand_drop(mob/user) @@ -317,7 +317,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) pickup(user) add_fingerprint(user) - if(!user.put_in_active_hand(src)) + if(!user.put_in_active_hand(src, FALSE, FALSE)) user.dropItemToGround(src) /obj/item/attack_alien(mob/user) diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index d17147eceb..6538ef9f3c 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -57,11 +57,14 @@ RLD var/loaded = 0 if(istype(W, /obj/item/rcd_ammo)) var/obj/item/rcd_ammo/R = W - if((matter + R.ammoamt) > max_matter) + var/load = min(R.ammoamt, max_matter - matter) + if(load <= 0) to_chat(user, "[src] can't hold any more matter-units!") return - qdel(W) - matter += R.ammoamt + R.ammoamt -= load + if(R.ammoamt <= 0) + qdel(R) + matter += load playsound(src.loc, 'sound/machines/click.ogg', 50, 1) loaded = 1 else if(istype(W, /obj/item/stack/sheet/metal) || istype(W, /obj/item/stack/sheet/glass)) diff --git a/code/game/objects/items/RCL.dm b/code/game/objects/items/RCL.dm index f423249b70..50e333872a 100644 --- a/code/game/objects/items/RCL.dm +++ b/code/game/objects/items/RCL.dm @@ -143,7 +143,7 @@ if (mobhook && mobhook.parent != user) QDEL_NULL(mobhook) if (!mobhook) - mobhook = user.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED), CALLBACK(src, .proc/trigger, user)) + mobhook = user.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, .proc/trigger, user))) else QDEL_NULL(mobhook) diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 2ff9d1e850..e4967b494d 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -384,25 +384,27 @@ update_label("John Doe", "Clowny") /obj/item/card/id/away/old name = "a perfectly generic identification card" desc = "A perfectly generic identification card. Looks like it could use some flavor." - access = list(ACCESS_AWAY_GENERAL) + icon_state = "centcom" /obj/item/card/id/away/old/sec - name = "Security Officer ID" - desc = "Security officers ID card." - icon_state = "centcom" + name = "Charlie Station Security Officer's ID card" + desc = "A faded Charlie Station ID card. You can make out the rank \"Security Officer\"." + assignment = "Charlie Station Security Officer" + access = list(ACCESS_AWAY_GENERAL, ACCESS_AWAY_SEC) /obj/item/card/id/away/old/sci - name = "Scientist ID" - desc = "Scientists ID card." - icon_state = "centcom" + name = "Charlie Station Scientist's ID card" + desc = "A faded Charlie Station ID card. You can make out the rank \"Scientist\"." + assignment = "Charlie Station Scientist" + access = list(ACCESS_AWAY_GENERAL) /obj/item/card/id/away/old/eng - name = "Engineer ID" - desc = "Engineers ID card." - icon_state = "centcom" + name = "Charlie Station Engineer's ID card" + desc = "A faded Charlie Station ID card. You can make out the rank \"Station Engineer\"." + assignment = "Charlie Station Engineer" + access = list(ACCESS_AWAY_GENERAL, ACCESS_AWAY_ENGINE) /obj/item/card/id/away/old/apc name = "APC Access ID" - desc = "Special ID card to allow access to APCs." - icon_state = "centcom" + desc = "A special ID card that allows access to APC terminals." access = list(ACCESS_ENGINE_EQUIP) diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index d8fef9ec6e..b463c2b087 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -205,9 +205,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM if(iscarbon(loc)) var/mob/living/carbon/C = loc if (src == C.wear_mask) // if it's in the human/monkey mouth, transfer reagents to the mob - if(prob(15)) // so it's not an instarape in case of acid - var/fraction = min(REAGENTS_METABOLISM/reagents.total_volume, 1) - reagents.reaction(C, INGEST, fraction) + var/fraction = min(REAGENTS_METABOLISM/reagents.total_volume, 1) + reagents.reaction(C, INGEST, fraction) if(!reagents.trans_to(C, REAGENTS_METABOLISM)) reagents.remove_any(REAGENTS_METABOLISM) return diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm index 2231f78616..486f847844 100644 --- a/code/game/objects/items/circuitboards/computer_circuitboards.dm +++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm @@ -280,6 +280,14 @@ name = "White Ship (Computer Board)" build_path = /obj/machinery/computer/shuttle/white_ship +/obj/item/circuitboard/computer/white_ship/pod + name = "Salvage Pod (Computer Board)" + build_path = /obj/machinery/computer/shuttle/white_ship/pod + +/obj/item/circuitboard/computer/white_ship/pod/recall + name = "Salvage Pod Recall (Computer Board)" + build_path = /obj/machinery/computer/shuttle/white_ship/pod/recall + /obj/item/circuitboard/computer/auxillary_base name = "Auxillary Base Management Console (Computer Board)" build_path = /obj/machinery/computer/auxillary_base diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 8d91b3855a..d308ff9d3f 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -573,7 +573,7 @@ /obj/item/circuitboard/machine/tesla_coil name = "Tesla Controller (Machine Board)" - desc = "You can use a screwdriver to switch between Research and Power Generation" + desc = "You can use a screwdriver to switch between Research and Power Generation." build_path = /obj/machinery/power/tesla_coil req_components = list(/obj/item/stock_parts/capacitor = 1) needs_anchored = FALSE @@ -921,4 +921,14 @@ /obj/item/circuitboard/machine/circulator name = "Circulator/Heat Exchanger (Machine Board)" build_path = /obj/machinery/atmospherics/components/binary/circulator - req_components = list() \ No newline at end of file + req_components = list() + +/obj/item/circuitboard/machine/harvester + name = "Harvester (Machine Board)" + build_path = /obj/machinery/harvester + req_components = list(/obj/item/stock_parts/micro_laser = 4) + +/obj/item/circuitboard/machine/ore_silo + name = "Ore Silo (Machine Board)" + build_path = /obj/machinery/ore_silo + req_components = list() diff --git a/code/game/objects/items/control_wand.dm b/code/game/objects/items/control_wand.dm index c9dc8c6c16..fa4524528b 100644 --- a/code/game/objects/items/control_wand.dm +++ b/code/game/objects/items/control_wand.dm @@ -84,6 +84,7 @@ /obj/item/door_remote/quartermaster name = "supply door remote" + desc = "Remotely controls airlocks. This remote has additional Vault access." icon_state = "gangtool-green" region_access = 6 @@ -93,7 +94,7 @@ region_access = 3 /obj/item/door_remote/civillian - name = "civillian door remote" + name = "civilian door remote" icon_state = "gangtool-white" region_access = 1 diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 3d069f1cff..9400535889 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -303,7 +303,7 @@ if (mobhook && mobhook.parent != user) QDEL_NULL(mobhook) if (!mobhook) - mobhook = user.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED), CALLBACK(src, .proc/check_range)) + mobhook = user.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, .proc/check_range))) /obj/item/twohanded/shockpaddles/Moved() . = ..() diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 7a665901e9..de912f4ca4 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -72,7 +72,7 @@ GLOBAL_LIST_EMPTY(PDAs) var/obj/item/paicard/pai = null // A slot for a personal AI device - var/icon/photo //Scanned photo + var/datum/picture/picture //Scanned photo var/list/contained_item = list(/obj/item/pen, /obj/item/toy/crayon, /obj/item/lipstick, /obj/item/flashlight/pen, /obj/item/clothing/mask/cigarette) var/obj/item/inserted_item //Used for pen, crayon, and lipstick insertion or removal. Same as above. @@ -257,6 +257,7 @@ GLOBAL_LIST_EMPTY(PDAs) dat += "

Quartermaster Functions:

" dat += "" dat += "" @@ -451,13 +452,7 @@ GLOBAL_LIST_EMPTY(PDAs) //MAIN FUNCTIONS=================================== if("Light") - if(fon) - fon = FALSE - set_light(0) - else if(f_lum) - fon = TRUE - set_light(f_lum) - update_icon() + toggle_light() if("Medical Scan") if(scanmode == PDA_SCANNER_MEDICAL) scanmode = PDA_SCANNER_NONE @@ -636,8 +631,8 @@ GLOBAL_LIST_EMPTY(PDAs) "message" = message, "targets" = string_targets )) - if (photo) - signal.data["photo"] = photo + if (picture) + signal.data["photo"] = picture signal.send_to_receivers() // If it didn't reach, note that fact @@ -657,7 +652,7 @@ GLOBAL_LIST_EMPTY(PDAs) log_talk(user, "[key_name(user)] (PDA: [initial(name)]) sent \"[message]\" to [target_text]", LOGPDA) to_chat(user, "Message sent to [target_text]: \"[message]\"") // Reset the photo - photo = null + picture = null last_text = world.time if (everyone) last_everyone = world.time @@ -713,6 +708,12 @@ GLOBAL_LIST_EMPTY(PDAs) remove_pen() +/obj/item/pda/verb/verb_toggle_light() + set category = "Object" + set name = "Toggle Flashlight" + + toggle_light() + /obj/item/pda/verb/verb_remove_id() set category = "Object" set name = "Eject ID" @@ -730,6 +731,15 @@ GLOBAL_LIST_EMPTY(PDAs) remove_pen() +/obj/item/pda/proc/toggle_light() + if(fon) + fon = FALSE + set_light(0) + else if(f_lum) + fon = TRUE + set_light(f_lum) + update_icon() + /obj/item/pda/proc/remove_pen() if(issilicon(usr) || !usr.canUseTopic(src, BE_CLOSE)) @@ -811,7 +821,7 @@ GLOBAL_LIST_EMPTY(PDAs) update_icon() else if(istype(C, /obj/item/photo)) var/obj/item/photo/P = C - photo = P.img + picture = P.picture to_chat(user, "You scan \the [C].") else return ..() @@ -926,11 +936,11 @@ GLOBAL_LIST_EMPTY(PDAs) var/selected = plist[c] - if(aicamera.aipictures.len>0) + if(aicamera.stored.len) var/add_photo = input(user,"Do you want to attach a photo?","Photo","No") as null|anything in list("Yes","No") if(add_photo=="Yes") - var/datum/picture/Pic = aicamera.selectpicture(aicamera) - aiPDA.photo = Pic.fields["img"] + var/datum/picture/Pic = aicamera.selectpicture(user) + aiPDA.picture = Pic if(incapacitated()) return diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 217295c872..421cc0989c 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -454,6 +454,24 @@ Code: menu += "
  • #[SO.id] - [SO.pack.name] requested by [SO.orderer]
  • " menu += "Upgrade NOW to Space Parts & Space Vendors PLUS for full remote order control and inventory management." + if (48) // quartermaster ore logs + menu = list("

    [PDAIMG(crate)] Ore Silo Logs

    ") + if (GLOB.ore_silo_default) + var/list/logs = GLOB.silo_access_logs[REF(GLOB.ore_silo_default)] + var/len = LAZYLEN(logs) + var/i = 0 + for(var/M in logs) + if (++i > 30) + menu += "(... older logs not shown ...)" + break + var/datum/ore_silo_log/entry = M + menu += "[len - i]. [entry.formatted]

    " + if(i == 0) + menu += "Nothing!" + else + menu += "No ore silo detected!" + menu = jointext(menu, "") + if (49) //janitorial locator menu = "

    [PDAIMG(bucket)] Persistent Custodial Object Locator

    " diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm index 439c895789..d4c2524101 100644 --- a/code/game/objects/items/devices/geiger_counter.dm +++ b/code/game/objects/items/devices/geiger_counter.dm @@ -208,7 +208,7 @@ if (mobhook && mobhook.parent != user) QDEL_NULL(mobhook) if (!mobhook) - mobhook = user.AddComponent(/datum/component/redirect, list(COMSIG_ATOM_RAD_ACT), CALLBACK(src, /atom.proc/rad_act)) + mobhook = user.AddComponent(/datum/component/redirect, list(COMSIG_ATOM_RAD_ACT = CALLBACK(src, /atom.proc/rad_act))) /obj/item/geiger_counter/cyborg/dropped() . = ..() diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 6acff297c9..a26079f87b 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -42,7 +42,7 @@ SLIME SCANNER /obj/item/t_scanner/proc/scan() t_ray_scan(loc) -/proc/t_ray_scan(mob/viewer, flick_time = 8, distance = 2) +/proc/t_ray_scan(mob/viewer, flick_time = 8, distance = 3) if(!ismob(viewer) || !viewer.client) return var/list/t_ray_images = list() @@ -527,6 +527,7 @@ SLIME SCANNER var/pressure = air_contents.return_pressure() var/volume = air_contents.return_volume() //could just do mixture.volume... but safety, I guess? var/temperature = air_contents.temperature + var/cached_scan_results = air_contents.analyzer_results if(total_moles > 0) to_chat(user, "Moles: [round(total_moles, 0.01)] mol") @@ -544,6 +545,12 @@ SLIME SCANNER to_chat(user, "This node is empty!") else to_chat(user, "[target] is empty!") + + if(cached_scan_results && cached_scan_results["fusion"]) //notify the user if a fusion reaction was detected + var/fusion_power = round(cached_scan_results["fusion"], 0.01) + var/tier = fusionpower2text(fusion_power) + to_chat(user, "Large amounts of free neutrons detected in the air indicate that a fusion reaction took place.") + to_chat(user, "Power of the last fusion reaction: [fusion_power]\n This power indicates it was a [tier]-tier fusion reaction.") return //slime scanner diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index 50cdbe9c48..d0282fdeef 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -120,9 +120,7 @@ mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] Recording started." var/used = mytape.used_capacity //to stop runtimes when you eject the tape var/max = mytape.max_capacity - for(used, used < max) - if(recording == 0) - break + while(recording && used < max) mytape.used_capacity++ used++ sleep(10) diff --git a/code/game/objects/items/dna_injector.dm b/code/game/objects/items/dna_injector.dm index ebae70ca05..502cd33e55 100644 --- a/code/game/objects/items/dna_injector.dm +++ b/code/game/objects/items/dna_injector.dm @@ -130,7 +130,7 @@ //////////////////////////////////// /obj/item/dnainjector/anticough name = "\improper DNA injector (Anti-Cough)" - desc = "Will stop that aweful noise." + desc = "Will stop that awful noise." remove_mutations_static = list(COUGH) /obj/item/dnainjector/coughmut diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index 67fe9ba138..5086264482 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -11,7 +11,7 @@ throw_speed = 2 throw_range = 7 force = 10 - materials = list(MAT_METAL=90) + materials = list(MAT_METAL = 90) attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed") dog_fashion = /datum/dog_fashion/back resistance_flags = FIRE_PROOF @@ -37,7 +37,7 @@ throwforce = 2 w_class = WEIGHT_CLASS_SMALL force = 3 - materials = list() + materials = list(MAT_METAL = 50, MAT_GLASS = 40) max_water = 30 sprite_name = "miniFE" dog_fashion = null diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index c961fca9f2..c04e8471bd 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -18,6 +18,7 @@ var/ignition_temp = 10 // The amount of heat added to the reagents when this grenade goes off. var/threatscale = 1 // Used by advanced grenades to make them slightly more worthy. var/no_splash = FALSE //If the grenade deletes even if it has no reagents to splash with. Used for slime core reactions. + var/casedesc = "This basic model accepts both beakers and bottles. It heats contents by 10°K upon ignition." // Appears when examining empty casings. /obj/item/grenade/chem_grenade/Initialize() . = ..() @@ -138,7 +139,7 @@ stage = N if(stage == EMPTY) name = "[initial(name)] casing" - desc = "A do it yourself [initial(name)]!" + desc = "A do it yourself [initial(name)]! [initial(casedesc)]" icon_state = initial(icon_state) else if(stage == WIRED) name = "unsecured [initial(name)]" @@ -211,10 +212,10 @@ //Large chem grenades accept slime cores and use the appropriately. /obj/item/grenade/chem_grenade/large name = "large grenade" - desc = "A custom made large grenade. It affects a larger area." + desc = "A custom made large grenade. Larger splash range and increased ignition temperature compared to basic grenades. Fits exotic containers." + casedesc = "This casing affects a larger area than the basic model and can fit exotic containers, including slime cores. Heats contents by 25°K upon ignition." icon_state = "large_grenade" - allowed_containers = list(/obj/item/reagent_containers/glass, /obj/item/reagent_containers/food/condiment, - /obj/item/reagent_containers/food/drinks) + allowed_containers = list(/obj/item/reagent_containers/glass, /obj/item/reagent_containers/food/condiment, /obj/item/reagent_containers/food/drinks) affected_area = 5 ignition_temp = 25 // Large grenades are slightly more effective at setting off heat-sensitive mixtures than smaller grenades. threatscale = 1.1 // 10% more effective. @@ -255,21 +256,23 @@ /obj/item/grenade/chem_grenade/cryo // Intended for rare cryogenic mixes. Cools the area moderately upon detonation. name = "cryo grenade" - desc = "A custom made cryogenic grenade. It rapidly cools its contents upon detonation." + desc = "A custom made cryogenic grenade. Rapidly cools contents upon ignition." + casedesc = "Upon ignition, it rapidly cools contents by 100°K. Smaller splash range than regular casings." icon_state = "cryog" affected_area = 2 ignition_temp = -100 /obj/item/grenade/chem_grenade/pyro // Intended for pyrotechnical mixes. Produces a small fire upon detonation, igniting potentially flammable mixtures. name = "pyro grenade" - desc = "A custom made pyrotechnical grenade. It heats up and ignites its contents upon detonation." + desc = "A custom made pyrotechnical grenade. Heats up contents upon ignition." + casedesc = "Upon ignition, it rapidly heats contents by 500°K." icon_state = "pyrog" - affected_area = 3 ignition_temp = 500 // This is enough to expose a hotspot. /obj/item/grenade/chem_grenade/adv_release // Intended for weaker, but longer lasting effects. Could have some interesting uses. name = "advanced release grenade" desc = "A custom made advanced release grenade. It is able to be detonated more than once. Can be configured using a multitool." + casedesc = "This casing is able to detonate more than once. Can be configured using a multitool." icon_state = "timeg" var/unit_spread = 10 // Amount of units per repeat. Can be altered with a multitool. @@ -324,7 +327,7 @@ /obj/item/grenade/chem_grenade/metalfoam name = "metal foam grenade" - desc = "Used for emergency sealing of air breaches." + desc = "Used for emergency sealing of hull breaches." stage = READY /obj/item/grenade/chem_grenade/metalfoam/Initialize() @@ -342,7 +345,7 @@ /obj/item/grenade/chem_grenade/smart_metal_foam name = "smart metal foam grenade" - desc = "Used for sealing and reconstruction of air breaches." + desc = "Used for emergency sealing of hull breaches, while keeping areas accessible." stage = READY /obj/item/grenade/chem_grenade/smart_metal_foam/Initialize() diff --git a/code/game/objects/items/grenades/spawnergrenade.dm b/code/game/objects/items/grenades/spawnergrenade.dm index 3f10039458..42800b8e65 100644 --- a/code/game/objects/items/grenades/spawnergrenade.dm +++ b/code/game/objects/items/grenades/spawnergrenade.dm @@ -34,3 +34,10 @@ /obj/item/grenade/spawnergrenade/syndiesoap name = "Mister Scrubby" spawner_type = /obj/item/soap/syndie + +/obj/item/grenade/spawnergrenade/buzzkill + name = "Buzzkill grenade" + desc = "The label reads: \"WARNING: DEVICE WILL RELEASE LIVE SPECIMENS UPON ACTIVATION. SEAL SUIT BEFORE USE.\" It is warm to the touch and vibrates faintly." + icon_state = "holy_grenade" + spawner_type = /mob/living/simple_animal/hostile/poison/bees/toxin + deliveryamt = 10 diff --git a/code/game/objects/items/his_grace.dm b/code/game/objects/items/his_grace.dm index ed5e763874..1ca335eb54 100644 --- a/code/game/objects/items/his_grace.dm +++ b/code/game/objects/items/his_grace.dm @@ -25,6 +25,7 @@ . = ..() START_PROCESSING(SSprocessing, src) GLOB.poi_list += src + AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_POST_THROW = CALLBACK(src, .proc/move_gracefully))) /obj/item/his_grace/Destroy() STOP_PROCESSING(SSprocessing, src) @@ -129,6 +130,27 @@ force_bonus = HIS_GRACE_FORCE_BONUS * LAZYLEN(contents) playsound(user, 'sound/effects/pope_entry.ogg', 100) icon_state = "his_grace_awakened" + move_gracefully() + +/obj/item/his_grace/proc/move_gracefully() + if(!awakened) + return + var/static/list/transforms + if(!transforms) + var/matrix/M1 = matrix() + var/matrix/M2 = matrix() + var/matrix/M3 = matrix() + var/matrix/M4 = matrix() + M1.Translate(-1, 0) + M2.Translate(0, 1) + M3.Translate(1, 0) + M4.Translate(0, -1) + transforms = list(M1, M2, M3, M4) + + animate(src, transform=transforms[1], time=0.2, loop=-1) + animate(transform=transforms[2], time=0.1) + animate(transform=transforms[3], time=0.2) + animate(transform=transforms[4], time=0.3) /obj/item/his_grace/proc/drowse() //Good night, Mr. Grace. if(!awakened) @@ -139,6 +161,7 @@ name = initial(name) desc = initial(desc) icon_state = initial(icon_state) + animate(src, transform=matrix()) gender = initial(gender) force = initial(force) force_bonus = initial(force_bonus) diff --git a/code/game/objects/items/holosign_creator.dm b/code/game/objects/items/holosign_creator.dm index 2549c85a7d..78881d901e 100644 --- a/code/game/objects/items/holosign_creator.dm +++ b/code/game/objects/items/holosign_creator.dm @@ -84,6 +84,14 @@ creation_time = 0 max_signs = 3 +/obj/item/holosign_creator/medical + name = "\improper PENLITE barrier projector" + desc = "A holographic projector that creates PENLITE holobarriers. Useful during quarantines since they halt those with malicious diseases." + icon_state = "signmaker_med" + holosign_type = /obj/structure/holosign/barrier/medical + creation_time = 30 + max_signs = 3 + /obj/item/holosign_creator/cyborg name = "Energy Barrier Projector" desc = "A holographic projector that creates fragile energy fields." diff --git a/code/game/objects/items/implants/implant_stealth.dm b/code/game/objects/items/implants/implant_stealth.dm new file mode 100644 index 0000000000..b3e9f24206 --- /dev/null +++ b/code/game/objects/items/implants/implant_stealth.dm @@ -0,0 +1,41 @@ +/obj/item/implant/stealth + name = "S3 implant" + desc = "Allows you to be hidden in plain sight." + actions_types = list(/datum/action/item_action/agent_box) + +//Box Object + +/obj/structure/closet/cardboard/agent + name = "inconspicious box" + desc = "It's so normal that you didn't notice it before." + icon_state = "agentbox" + move_speed_multiplier = 0.5 + +/obj/structure/closet/cardboard/agent/proc/go_invisible() + animate(src, , alpha = 0, time = 5) + +/obj/structure/closet/cardboard/agent/Initialize() + . = ..() + go_invisible() + + +/obj/structure/closet/cardboard/agent/open() + . = ..() + qdel(src) + +/obj/structure/closet/cardboard/agent/process() + alpha = max(0, alpha - 50) + +/obj/structure/closet/cardboard/agent/proc/reveal() + alpha = 255 + addtimer(CALLBACK(src, .proc/go_invisible), 10, TIMER_OVERRIDE|TIMER_UNIQUE) + +/obj/structure/closet/cardboard/agent/Bump(atom/movable/A) + . = ..() + if(isliving(A)) + reveal() + +/obj/structure/closet/cardboard/agent/Bumped(atom/movable/A) + . = ..() + if(isliving(A)) + reveal() diff --git a/code/game/objects/items/implants/implanter.dm b/code/game/objects/items/implants/implanter.dm index 528905be1e..a1d360240d 100644 --- a/code/game/objects/items/implants/implanter.dm +++ b/code/game/objects/items/implants/implanter.dm @@ -71,3 +71,7 @@ /obj/item/implanter/emp name = "implanter (EMP)" imp_type = /obj/item/implant/emp + +/obj/item/implanter/stealth + name = "implanter (stealth)" + imp_type = /obj/item/implant/stealth \ No newline at end of file diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index d0f83d9253..19814af792 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -112,7 +112,7 @@ limbs_to_dismember = arms + legs if(holding_bodypart) limbs_to_dismember += holding_bodypart - + var/speedbase = abs((4 SECONDS) / limbs_to_dismember.len) for(bodypart in limbs_to_dismember) i++ @@ -352,7 +352,7 @@ force = 15 w_class = WEIGHT_CLASS_NORMAL attack_verb = list("flogged", "whipped", "lashed", "disciplined") - hitsound = 'sound/weapons/chainhit.ogg' + hitsound = 'sound/weapons/whip.ogg' /obj/item/melee/curator_whip/afterattack(target, mob/user, proximity_flag) . = ..() diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm index d6262c10a5..c4ad324a2c 100644 --- a/code/game/objects/items/pinpointer.dm +++ b/code/game/objects/items/pinpointer.dm @@ -143,9 +143,3 @@ target = null if(!target) //target can be set to null from above code, or elsewhere active = FALSE - -/obj/item/pinpointer/process() - if(!active) - return PROCESS_KILL - scan_for_target() - update_icon() diff --git a/code/game/objects/items/pneumaticCannon.dm b/code/game/objects/items/pneumaticCannon.dm index 752859143b..a3846979a2 100644 --- a/code/game/objects/items/pneumaticCannon.dm +++ b/code/game/objects/items/pneumaticCannon.dm @@ -98,6 +98,8 @@ load_item(IW, user) /obj/item/pneumatic_cannon/proc/can_load_item(obj/item/I, mob/user) + if(!istype(I)) //Players can't load non items, this allows for admin varedit inserts. + return TRUE if(allowed_typecache && !is_type_in_typecache(I, allowed_typecache)) if(user) to_chat(user, "[I] won't fit into [src]!") @@ -163,7 +165,7 @@ "You fire \the [src]!") add_logs(user, target, "fired at", src) var/turf/T = get_target(target, get_turf(src)) - playsound(src.loc, 'sound/weapons/sonic_jackhammer.ogg', 50, 1) + playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, 1) fire_items(T, user) if(pressureSetting >= 3 && iscarbon(user)) var/mob/living/carbon/C = user @@ -225,31 +227,31 @@ /obj/item/pneumatic_cannon/proc/updateTank(obj/item/tank/internals/thetank, removing = 0, mob/living/carbon/human/user) if(removing) - if(!src.tank) + if(!tank) return to_chat(user, "You detach \the [thetank] from \the [src].") - src.tank.forceMove(user.drop_location()) + tank.forceMove(user.drop_location()) user.put_in_hands(tank) - src.tank = null + tank = null if(!removing) - if(src.tank) + if(tank) to_chat(user, "\The [src] already has a tank.") return if(!user.transferItemToLoc(thetank, src)) return to_chat(user, "You hook \the [thetank] up to \the [src].") - src.tank = thetank - src.update_icons() + tank = thetank + update_icons() /obj/item/pneumatic_cannon/proc/update_icons() - src.cut_overlays() + cut_overlays() if(!tank) return add_overlay(tank.icon_state) - src.update_icon() + update_icon() /obj/item/pneumatic_cannon/proc/fill_with_type(type, amount) - if(!ispath(type, /obj/item)) + if(!ispath(type, /obj) && !ispath(type, /mob)) return FALSE var/loaded = 0 for(var/i in 1 to amount) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 975908106e..dce95057ca 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -195,7 +195,7 @@ /obj/item/borg/upgrade/tboh name = "janitor cyborg trash bag of holding" - desc = "A trash bag of holding replace for the janiborgs standard trash bag." + desc = "A trash bag of holding replacement for the janiborg's standard trash bag." icon_state = "cyborg_upgrade3" require_module = 1 module_type = /obj/item/robot_module/janitor @@ -222,7 +222,7 @@ /obj/item/borg/upgrade/amop name = "janitor cyborg advanced mop" - desc = "An advanced mop replacement from the janiborgs standard mop." + desc = "An advanced mop replacement for the janiborg's standard mop." icon_state = "cyborg_upgrade3" require_module = 1 module_type = /obj/item/robot_module/janitor @@ -460,7 +460,7 @@ /obj/item/borg/upgrade/defib name = "medical cyborg defibrillator" - desc = "An upgrade to the Medical module, installing a builtin \ + desc = "An upgrade to the Medical module, installing a built-in \ defibrillator, for on the scene revival." icon_state = "cyborg_upgrade3" require_module = 1 diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 2231207556..907b26c75c 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -100,6 +100,9 @@ turf_type = /turf/open/floor/carpet resistance_flags = FLAMMABLE +/obj/item/stack/tile/carpet/fifty + amount = 50 + /obj/item/stack/tile/carpet/black name = "black carpet" icon_state = "tile-carpet-black" diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 11dbf727f1..2e9d717267 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -119,7 +119,7 @@ if (mobhook && mobhook.parent != user) QDEL_NULL(mobhook) if (!mobhook) - mobhook = user.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED), CALLBACK(src, .proc/Pickup_ores, user)) + mobhook = user.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, .proc/Pickup_ores, user))) /obj/item/storage/bag/ore/dropped() . = ..() diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 9ac08aab5d..ffb80ee215 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -189,6 +189,14 @@ for(var/i in 1 to 7) new /obj/item/reagent_containers/glass/beaker( src ) +/obj/item/storage/box/beakers/bluespace + name = "box of bluespace beakers" + illustration = "beaker" + +/obj/item/storage/box/beakers/bluespace/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/reagent_containers/glass/beaker/bluespace(src) + /obj/item/storage/box/medsprays name = "box of medical sprayers" desc = "A box full of medical sprayers, with unscrewable caps and precision spray heads." @@ -991,6 +999,7 @@ /obj/item/storage/box/stockparts/deluxe name = "box of deluxe stock parts" desc = "Contains a variety of deluxe stock parts." + icon_state = "syndiebox" /obj/item/storage/box/stockparts/deluxe/PopulateContents() new /obj/item/stock_parts/capacitor/quadratic(src) diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 39a4f14eed..6bd5d52377 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -339,3 +339,11 @@ new /obj/item/stamp/chameleon/broken(src) new /obj/item/pda/chameleon/broken(src) // No chameleon laser, they can't randomise for //REASONS// + +/obj/item/storage/box/syndie_kit/bee_grenades + name = "buzzkill grenade box" + desc = "A sleek, sturdy box with a buzzing noise coming from the inside. Uh oh." + +/obj/item/storage/box/syndie_kit/bee_grenades/PopulateContents() + for(var/i in 1 to 3) + new /obj/item/grenade/spawnergrenade/buzzkill(src) diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index 82ad735f25..c57e774186 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -806,3 +806,58 @@ /obj/item/twohanded/bonespear/update_icon() 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/datum/component/mobhook + var/zoom_out_amt = 6 + var/zoom_amt = 10 + +/obj/item/twohanded/binoculars/wield(mob/user) + . = ..() + if(!wielded) + return + if(QDELETED(mobhook)) + mobhook = user.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, .proc/unwield, user))) + else + user.TakeComponent(mobhook) + 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) + . = ..() + mobhook.RemoveComponent() + 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/weaponry.dm b/code/game/objects/items/weaponry.dm index 44c51099c6..b483bd03ba 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -609,7 +609,8 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/slapper/attack(mob/M, mob/living/carbon/human/user) if(ishuman(M)) var/mob/living/carbon/human/L = M - L.endTailWag() + if(L && L.dna && L.dna.species) + L.dna.species.stop_wagging_tail(M) if(user.a_intent != INTENT_HARM && ((user.zone_selected == BODY_ZONE_PRECISE_MOUTH) || (user.zone_selected == BODY_ZONE_PRECISE_EYES) || (user.zone_selected == BODY_ZONE_HEAD))) user.do_attack_animation(M) playsound(M, 'sound/weapons/slap.ogg', 50, 1, -1) diff --git a/code/game/objects/structures/aliens.dm b/code/game/objects/structures/aliens.dm index c0842822df..3cc40c8415 100644 --- a/code/game/objects/structures/aliens.dm +++ b/code/game/objects/structures/aliens.dm @@ -64,9 +64,9 @@ CanAtmosPass = ATMOS_PASS_DENSITY -/obj/structure/alien/resin/New(location) - ..() - air_update_turf(1) +/obj/structure/alien/resin/Initialize(mapload) + . = ..() + air_update_turf(TRUE) /obj/structure/alien/resin/Move() var/turf/T = loc diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm index f4af05c9c9..b8320c80fb 100644 --- a/code/game/objects/structures/artstuff.dm +++ b/code/game/objects/structures/artstuff.dm @@ -13,7 +13,6 @@ max_integrity = 60 var/obj/item/canvas/painting = null - //Adding canvases /obj/structure/easel/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/canvas)) @@ -66,6 +65,15 @@ GLOBAL_LIST_INIT(globalBlankCanvases, new(AMT_OF_CANVASES)) 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 //Find the right size blank canvas /obj/item/canvas/proc/getGlobalBackup() @@ -124,5 +132,4 @@ GLOBAL_LIST_INIT(globalBlankCanvases, new(AMT_OF_CANVASES)) user.visible_message("[user] cleans the canvas.","You clean the canvas.") - #undef AMT_OF_CANVASES diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index a22ea805ea..4726707996 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -22,7 +22,7 @@ return move_delay = TRUE if(step(src, direction)) - addtimer(CALLBACK(src, .proc/ResetMoveDelay), CONFIG_GET(number/walk_delay) * move_speed_multiplier) + addtimer(CALLBACK(src, .proc/ResetMoveDelay), CONFIG_GET(number/movedelay/walk_delay) * move_speed_multiplier) else ResetMoveDelay() diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm index 7a79b7d2de..a062be0964 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -19,3 +19,5 @@ new /obj/item/export_scanner(src) new /obj/item/door_remote/quartermaster(src) new /obj/item/circuitboard/machine/techfab/department/cargo(src) + new /obj/item/storage/photo_album/QM(src) + new /obj/item/circuitboard/machine/ore_silo(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 97a157e0be..45216a6d95 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -29,6 +29,7 @@ new /obj/item/inducer(src) new /obj/item/circuitboard/machine/techfab/department/engineering(src) new /obj/item/extinguisher/advanced(src) + new /obj/item/storage/photo_album/CE(src) /obj/structure/closet/secure_closet/engineering_electrical name = "electrical supplies locker" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index d3d2e13786..14d6e5f4e7 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -76,6 +76,7 @@ new /obj/item/pet_carrier(src) new /obj/item/wallframe/defib_mount(src) new /obj/item/circuitboard/machine/techfab/department/medical(src) + new /obj/item/storage/photo_album/CMO(src) /obj/structure/closet/secure_closet/animal name = "animal control" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 6e5c425b2b..eb10b97bc3 100755 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -25,3 +25,4 @@ new /obj/item/laser_pointer(src) new /obj/item/door_remote/research_director(src) new /obj/item/circuitboard/machine/techfab/department/science(src) + new /obj/item/storage/photo_album/RD(src) 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 faf5574374..52bf73fdc8 100755 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -32,6 +32,7 @@ new /obj/item/gun/energy/e_gun(src) new /obj/item/door_remote/captain(src) new /obj/item/card/id/captains_spare(src) + new /obj/item/storage/photo_album/Captain(src) /obj/structure/closet/secure_closet/hop name = "\proper head of personnel's locker" @@ -58,6 +59,7 @@ new /obj/item/pet_carrier(src) new /obj/item/door_remote/civillian(src) new /obj/item/circuitboard/machine/techfab/department/service(src) + new /obj/item/storage/photo_album/HoP(src) /obj/structure/closet/secure_closet/hos name = "\proper head of security's locker" @@ -90,6 +92,7 @@ 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) /obj/structure/closet/secure_closet/warden name = "\proper warden's locker" diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index b803fff2bd..df3df8ad14 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -69,7 +69,7 @@ desc = "It's a burial receptacle for the dearly departed." icon_state = "coffin" resistance_flags = FLAMMABLE - max_integrity = 70 + max_integrity = 70 material_drop = /obj/item/stack/sheet/mineral/wood material_drop_amount = 5 diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index c877488601..5878b569c3 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -38,11 +38,6 @@ . = ..() AddComponent(/datum/component/rad_insulation, RAD_MEDIUM_INSULATION) -/obj/structure/falsewall/Destroy() - density = FALSE - air_update_turf(1) - return ..() - /obj/structure/falsewall/ratvar_act() new /obj/structure/falsewall/brass(loc) qdel(src) diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 6c5ecf149e..6290139bb4 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -477,7 +477,8 @@ mob_species = /datum/species/human flavour_text = "You are a security officer working for Nanotrasen, stationed onboard a state of the art research station. You vaguely recall rushing into a \ cryogenics pod due to an oncoming radiation storm. The last thing you remember is the station's Artificial Program telling you that you would only be asleep for eight hours. As you open \ - your eyes, everything seems rusted and broken, a dark feeling sweels in your gut as you climb out of your pod." + your eyes, everything seems rusted and broken, a dark feeling swells in your gut as you climb out of your pod. \ + Work as a team with your fellow survivors and do not abandon them." uniform = /obj/item/clothing/under/rank/security shoes = /obj/item/clothing/shoes/jackboots id = /obj/item/card/id/away/old/sec @@ -501,7 +502,8 @@ mob_species = /datum/species/human flavour_text = "You are an engineer working for Nanotrasen, stationed onboard a state of the art research station. You vaguely recall rushing into a \ cryogenics pod due to an oncoming radiation storm. The last thing you remember is the station's Artificial Program telling you that you would only be asleep for eight hours. As you open \ - your eyes, everything seems rusted and broken, a dark feeling sweels in your gut as you climb out of your pod." + your eyes, everything seems rusted and broken, a dark feeling swells in your gut as you climb out of your pod. \ + Work as a team with your fellow survivors and do not abandon them." uniform = /obj/item/clothing/under/rank/engineer shoes = /obj/item/clothing/shoes/workboots id = /obj/item/card/id/away/old/eng @@ -525,7 +527,8 @@ mob_species = /datum/species/human flavour_text = "You are a scientist working for Nanotrasen, stationed onboard a state of the art research station. You vaguely recall rushing into a \ cryogenics pod due to an oncoming radiation storm. The last thing you remember is the station's Artificial Program telling you that you would only be asleep for eight hours. As you open \ - your eyes, everything seems rusted and broken, a dark feeling sweels in your gut as you climb out of your pod." + your eyes, everything seems rusted and broken, a dark feeling swells in your gut as you climb out of your pod. \ + Work as a team with your fellow survivors and do not abandon them." uniform = /obj/item/clothing/under/rank/scientist shoes = /obj/item/clothing/shoes/laceup id = /obj/item/card/id/away/old/sci diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index dff614746c..c5c8dd3c68 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -83,11 +83,6 @@ . = ..() air_update_turf(TRUE) -/obj/structure/holosign/barrier/atmos/Destroy() - var/turf/T = get_turf(src) - . = ..() - T.air_update_turf(TRUE) - /obj/structure/holosign/barrier/cyborg name = "Energy Field" desc = "A fragile energy field that blocks movement. Excels at blocking lethal projectiles." @@ -102,6 +97,44 @@ if(istype(P, /obj/item/projectile/beam/disabler)) take_damage(5, BRUTE, "melee", 1) //Disablers aren't harmful. +/obj/structure/holosign/barrier/medical + name = "\improper PENLITE holobarrier" + desc = "A holobarrier that uses biometrics to detect human viruses. Denies passing to personnel with easily-detected, malicious viruses. Good for quarantines." + icon_state = "holo_medical" + alpha = 125 //lazy :) + layer = ABOVE_MOB_LAYER + var/force_allaccess = FALSE + var/buzzcd = 0 + +/obj/structure/holosign/barrier/medical/examine(mob/user) + ..() + to_chat(user,"The biometric scanners are [force_allaccess ? "off" : "on"].") + +/obj/structure/holosign/barrier/medical/CanPass(atom/movable/mover, turf/target) + icon_state = "holo_medical" + if(force_allaccess) + return TRUE + if(ishuman(mover)) + var/mob/living/carbon/human/sickboi = mover + var/threat = sickboi.check_virus() + switch(threat) + if(DISEASE_SEVERITY_MINOR, DISEASE_SEVERITY_MEDIUM, DISEASE_SEVERITY_HARMFUL, DISEASE_SEVERITY_DANGEROUS, DISEASE_SEVERITY_BIOHAZARD) + if(buzzcd < world.time) + playsound(get_turf(src),'sound/machines/buzz-sigh.ogg',65,1,4) + buzzcd = (world.time + 60) + icon_state = "holo_medical-deny" + return FALSE + else + return TRUE //nice or benign diseases! + return TRUE + +/obj/structure/holosign/barrier/medical/attack_hand(mob/living/user) + if(CanPass(user) && user.a_intent == INTENT_HELP) + force_allaccess = !force_allaccess + to_chat(user, "You [force_allaccess ? "deactivate" : "activate"] the biometric scanners.") //warning spans because you can make the station sick! + else + return ..() + /obj/structure/holosign/barrier/cyborg/hacked name = "Charged Energy Field" desc = "A powerful energy field that blocks movement. Energy arcs off it." @@ -135,4 +168,4 @@ var/mob/living/M = AM M.electrocute_act(15,"Energy Barrier", safety=1) shockcd = TRUE - addtimer(CALLBACK(src, .proc/cooldown), 5) + addtimer(CALLBACK(src, .proc/cooldown), 5) \ No newline at end of file diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index 86566cc683..c3316f2568 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -30,11 +30,6 @@ /obj/structure/mineral_door/ComponentInitialize() AddComponent(/datum/component/rad_insulation, RAD_MEDIUM_INSULATION) -/obj/structure/mineral_door/Destroy() - density = FALSE - air_update_turf(1) - return ..() - /obj/structure/mineral_door/Move() var/turf/T = loc . = ..() diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index a247f4c125..111ce3ccca 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -256,10 +256,10 @@ GLOBAL_LIST_EMPTY(crematoriums) if (M.stat != DEAD) M.emote("scream") if(user) - user.log_message("Cremated [M]/[M.ckey]", INDIVIDUAL_ATTACK_LOG) - log_attack("[user]/[user.ckey] cremated [M]/[M.ckey]") + user.log_message("Cremated [key_name(M)]", INDIVIDUAL_ATTACK_LOG) + log_attack("[key_name(user)] cremated [key_name(M)]") else - log_attack("UNKNOWN cremated [M]/[M.ckey]") + log_attack("UNKNOWN cremated [key_name(M)]") M.death(1) if(M) //some animals get automatically deleted on death. M.ghostize() diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 3a10d200a1..f256b6bd4c 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -13,6 +13,7 @@ FLOOR SAFES anchored = TRUE density = TRUE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND | INTERACT_ATOM_UI_INTERACT var/open = FALSE //is the safe open? var/tumbler_1_pos //the tumbler position- from 0 to 72 var/tumbler_1_open //the tumbler position to open at- 0 to 72 @@ -23,7 +24,6 @@ FLOOR SAFES var/maxspace = 24 //the maximum combined w_class of stuff in the safe var/explosion_count = 0 //Tough, but breakable - /obj/structure/safe/New() ..() tumbler_1_pos = rand(0, 71) @@ -61,32 +61,25 @@ FLOOR SAFES return TRUE return FALSE - /obj/structure/safe/proc/decrement(num) num -= 1 if(num < 0) num = 71 return num - /obj/structure/safe/proc/increment(num) num += 1 if(num > 71) num = 0 return num - /obj/structure/safe/update_icon() if(open) icon_state = "[initial(icon_state)]-open" else icon_state = initial(icon_state) - -/obj/structure/safe/attack_hand(mob/user) - . = ..() - if(.) - return +/obj/structure/safe/ui_interact(mob/user) user.set_machine(src) var/dat = "
    " dat += "[open ? "Close" : "Open"] [src] | - [dial] +" @@ -98,7 +91,6 @@ FLOOR SAFES dat += "
    " user << browse("[name][dat]", "window=safe;size=350x300") - /obj/structure/safe/Topic(href, href_list) if(!ishuman(usr)) return diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 6e30f75b1d..dd28168ccc 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -11,9 +11,6 @@ CanAtmosPass = ATMOS_PASS_DENSITY -/obj/structure/statue/Initialize() - . = ..() - /obj/structure/statue/attackby(obj/item/W, mob/living/user, params) add_fingerprint(user) user.changeNext_move(CLICK_CD_MELEE) @@ -116,8 +113,7 @@ /obj/structure/statue/plasma/bullet_act(obj/item/projectile/Proj) var/burn = FALSE - if(!(Proj.nodamage) && Proj.damage_type == BURN) - PlasmaBurn(2500) + if(!(Proj.nodamage) && Proj.damage_type == BURN && !QDELETED(src)) burn = TRUE if(burn) var/turf/T = get_turf(src) @@ -127,10 +123,11 @@ else message_admins("Plasma statue ignited by [Proj]. No known firer, in [ADMIN_VERBOSEJMP(T)]") log_game("Plasma statue ignited by [Proj] in [AREACOORD(T)]. No known firer.") + PlasmaBurn(2500) ..() /obj/structure/statue/plasma/attackby(obj/item/W, mob/user, params) - if(W.is_hot() > 300)//If the temperature of the object is over 300, then ignite + if(W.is_hot() > 300 && !QDELETED(src))//If the temperature of the object is over 300, then ignite var/turf/T = get_turf(src) message_admins("Plasma statue ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(T)]") log_game("Plasma statue ignited by [key_name(user)] in [AREACOORD(T)]") @@ -139,6 +136,8 @@ return ..() /obj/structure/statue/plasma/proc/PlasmaBurn(exposed_temperature) + if(QDELETED(src)) + return atmos_spawn_air("plasma=[oreAmount*10];TEMP=[exposed_temperature]") deconstruct(FALSE) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index aa87410d2c..da5eeb8dcd 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -60,24 +60,31 @@ return attack_hand(user) /obj/structure/table/attack_hand(mob/living/user) - if(Adjacent(user) && user.pulling && isliving(user.pulling)) - var/mob/living/pushed_mob = user.pulling - if(pushed_mob.buckled) - to_chat(user, "[pushed_mob] is buckled to [pushed_mob.buckled]!") - return - if(user.a_intent == INTENT_GRAB) - if(user.grab_state < GRAB_AGGRESSIVE) - to_chat(user, "You need a better grip to do that!") - return - tablepush(user, pushed_mob) - if(user.a_intent == INTENT_HELP) - pushed_mob.visible_message("[user] begins to place [pushed_mob] onto [src]...", \ - "[user] begins to place [pushed_mob] onto [src]...") - if(do_after(user, 35, target = pushed_mob)) - tableplace(user, pushed_mob) - else + if(Adjacent(user) && user.pulling) + if(isliving(user.pulling)) + var/mob/living/pushed_mob = user.pulling + if(pushed_mob.buckled) + to_chat(user, "[pushed_mob] is buckled to [pushed_mob.buckled]!") return - user.stop_pulling() + if(user.a_intent == INTENT_GRAB) + if(user.grab_state < GRAB_AGGRESSIVE) + to_chat(user, "You need a better grip to do that!") + return + tablepush(user, pushed_mob) + if(user.a_intent == INTENT_HELP) + pushed_mob.visible_message("[user] begins to place [pushed_mob] onto [src]...", \ + "[user] begins to place [pushed_mob] onto [src]...") + if(do_after(user, 35, target = pushed_mob)) + tableplace(user, pushed_mob) + else + return + user.stop_pulling() + else if(user.pulling.pass_flags & PASSTABLE) + user.Move_Pulled(src) + if (user.pulling.loc == loc) + user.visible_message("[user] places [user.pulling] onto [src].", + "You place [user.pulling] onto [src].") + user.stop_pulling() return ..() /obj/structure/table/attack_tk() diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index c1aba02f28..578232fba0 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -35,6 +35,9 @@ to_be_destroyed = FALSE return src +/turf/closed/indestructible/singularity_act() + return + /turf/closed/indestructible/oldshuttle name = "strange shuttle wall" icon = 'icons/turf/shuttleold.dmi' diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 44dff22963..3554155f46 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -23,6 +23,9 @@ to_be_destroyed = FALSE return src +/turf/open/indestructible/singularity_act() + return + /turf/open/indestructible/TerraformTurf(path, defer_change = FALSE, ignore_air = FALSE) return diff --git a/code/game/turfs/simulated/floor/reinf_floor.dm b/code/game/turfs/simulated/floor/reinf_floor.dm index 13cf936412..fe18e0adab 100644 --- a/code/game/turfs/simulated/floor/reinf_floor.dm +++ b/code/game/turfs/simulated/floor/reinf_floor.dm @@ -36,7 +36,8 @@ if(I.use_tool(src, user, 30, volume=80)) if(!istype(src, /turf/open/floor/engine)) return TRUE - new /obj/item/stack/rods(src, 2) + if(floor_tile) + new floor_tile(src, 2) ScrapeAway() return TRUE diff --git a/code/game/turfs/simulated/water.dm b/code/game/turfs/simulated/water.dm index 23ba5957c8..777a9b15fb 100644 --- a/code/game/turfs/simulated/water.dm +++ b/code/game/turfs/simulated/water.dm @@ -11,6 +11,3 @@ bullet_sizzle = TRUE bullet_bounce_sound = null //needs a splashing sound one day. -/turf/open/water/Initialize() - . = ..() - MakeSlippery(TURF_WET_WATER, INFINITY, 0, INFINITY, TRUE) diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index ba45d8819c..3e7968a9d7 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -141,7 +141,7 @@ var/itercount = 0 while(DT.density || istype(DT.loc,/area/shuttle)) // Extend towards the center of the map, trying to look for a better place to arrive if (itercount++ >= 100) - log_game("SPACE Z-TRANSIT ERROR: Could not not find a safe place to land [A] within 100 iterations.") + log_game("SPACE Z-TRANSIT ERROR: Could not find a safe place to land [A] within 100 iterations.") break if (tx < 128) tx++ diff --git a/code/game/world.dm b/code/game/world.dm index 2563a26cdc..0e68bba2cc 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -76,17 +76,29 @@ GLOBAL_PROTECT(security_mode) /world/proc/SetupLogs() var/override_dir = params[OVERRIDE_LOG_DIRECTORY_PARAMETER] if(!override_dir) - GLOB.log_directory = "data/logs/[time2text(world.realtime, "YYYY/MM/DD")]/round-" + var/realtime = world.realtime + var/texttime = time2text(realtime, "YYYY/MM/DD") + GLOB.log_directory = "data/logs/[texttime]/round-" + GLOB.picture_logging_prefix = "L_[time2text(realtime, "YYYYMMDD")]_" + GLOB.picture_log_directory = "data/picture_logs/[texttime]/round-" if(GLOB.round_id) GLOB.log_directory += "[GLOB.round_id]" + GLOB.picture_logging_prefix += "R_[GLOB.round_id]_" + GLOB.picture_log_directory += "[GLOB.round_id]" else - GLOB.log_directory += "[replacetext(time_stamp(), ":", ".")]" + var/timestamp = replacetext(time_stamp(), ":", ".") + GLOB.log_directory += "[timestamp]" + GLOB.picture_log_directory += "[timestamp]" + GLOB.picture_logging_prefix += "T_[timestamp]_" else GLOB.log_directory = "data/logs/[override_dir]" + GLOB.picture_logging_prefix = "O_[override_dir]_" + GLOB.picture_log_directory = "data/picture_logs/[override_dir]" GLOB.world_game_log = "[GLOB.log_directory]/game.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" GLOB.world_manifest_log = "[GLOB.log_directory]/manifest.log" GLOB.world_href_log = "[GLOB.log_directory]/hrefs.log" GLOB.sql_error_log = "[GLOB.log_directory]/sql.log" @@ -102,6 +114,7 @@ GLOBAL_PROTECT(security_mode) start_log(GLOB.world_game_log) start_log(GLOB.world_attack_log) start_log(GLOB.world_pda_log) + start_log(GLOB.world_telecomms_log) start_log(GLOB.world_manifest_log) start_log(GLOB.world_href_log) start_log(GLOB.world_qdel_log) diff --git a/code/modules/VR/vr_sleeper.dm b/code/modules/VR/vr_sleeper.dm index c36f0f040b..eed6f9b3ae 100644 --- a/code/modules/VR/vr_sleeper.dm +++ b/code/modules/VR/vr_sleeper.dm @@ -95,7 +95,7 @@ SStgui.close_user_uis(occupant, src) vr_human.real_mind = human_occupant.mind vr_human.ckey = human_occupant.ckey - to_chat(vr_human, "Transfer successful! you are now playing as [vr_human] in VR!") + to_chat(vr_human, "Transfer successful! You are now playing as [vr_human] in VR!") else if(allow_creating_vr_humans) to_chat(occupant, "Virtual avatar not found, attempting to create one...") @@ -104,7 +104,7 @@ if(T) SStgui.close_user_uis(occupant, src) build_virtual_human(occupant, T, V.vr_outfit) - to_chat(vr_human, "Transfer successful! you are now playing as [vr_human] in VR!") + to_chat(vr_human, "Transfer successful! You are now playing as [vr_human] in VR!") else to_chat(occupant, "Virtual world misconfigured, aborting transfer") else diff --git a/code/modules/admin/DB_ban/functions.dm b/code/modules/admin/DB_ban/functions.dm index fd95783525..ceabbb0734 100644 --- a/code/modules/admin/DB_ban/functions.dm +++ b/code/modules/admin/DB_ban/functions.dm @@ -2,7 +2,7 @@ #define MAX_ADMIN_BANS_PER_HEADMIN 3 //Either pass the mob you wish to ban in the 'banned_mob' attribute, or the banckey, banip and bancid variables. If both are passed, the mob takes priority! If a mob is not passed, banckey is the minimum that needs to be passed! banip and bancid are optional. -/datum/admins/proc/DB_ban_record(bantype, mob/banned_mob, duration = -1, reason, job = "", banckey = null, banip = null, bancid = null) +/datum/admins/proc/DB_ban_record(bantype, mob/banned_mob, duration = -1, reason, job = "", bankey = null, banip = null, bancid = null) if(!check_rights(R_BAN)) return @@ -64,23 +64,24 @@ if(ismob(banned_mob)) ckey = banned_mob.ckey + bankey = banned_mob.key if(banned_mob.client) computerid = banned_mob.client.computer_id ip = banned_mob.client.address else computerid = banned_mob.computer_id ip = banned_mob.lastKnownIP - else if(banckey) - ckey = ckey(banckey) + else if(bankey) + ckey = ckey(bankey) computerid = bancid ip = banip - + var/had_banned_mob = banned_mob != null var/client/banned_client = banned_mob?.client var/banned_mob_guest_key = had_banned_mob && IsGuestKey(banned_mob.key) banned_mob = null - var/datum/DBQuery/query_add_ban_get_ckey = SSdbcore.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE ckey = '[ckey]'") + var/datum/DBQuery/query_add_ban_get_ckey = SSdbcore.NewQuery("SELECT 1 FROM [format_table_name("player")] WHERE ckey = '[ckey]'") if(!query_add_ban_get_ckey.warn_execute()) qdel(query_add_ban_get_ckey) return @@ -88,14 +89,16 @@ qdel(query_add_ban_get_ckey) if(!seen_before) if(!had_banned_mob || (had_banned_mob && !banned_mob_guest_key)) - if(alert(usr, "[ckey] has not been seen before, are you sure you want to create a ban for them?", "Unknown ckey", "Yes", "No", "Cancel") != "Yes") + if(alert(usr, "[bankey] has not been seen before, are you sure you want to create a ban for them?", "Unknown ckey", "Yes", "No", "Cancel") != "Yes") return + var/a_key var/a_ckey var/a_computerid var/a_ip if(istype(owner)) + a_key = owner.key a_ckey = owner.ckey a_computerid = owner.computer_id a_ip = owner.address @@ -147,17 +150,17 @@ return qdel(query_add_ban) to_chat(usr, "Ban saved to database.") - var/msg = "[key_name_admin(usr)] has added a [bantype_str] for [ckey] [(job)?"([job])":""] [(duration > 0)?"([duration] minutes)":""] with the reason: \"[reason]\" to the ban database." + var/msg = "[key_name_admin(usr)] has added a [bantype_str] for [bankey] [(job)?"([job])":""] [(duration > 0)?"([duration] minutes)":""] with the reason: \"[reason]\" to the ban database." message_admins(msg,1) var/datum/admin_help/AH = admin_ticket_log(ckey, msg) if(announceinirc) - send2irc("BAN ALERT","[a_ckey] applied a [bantype_str] on [ckey]") + send2irc("BAN ALERT","[a_key] applied a [bantype_str] on [bankey]") if(kickbannedckey) if(AH) AH.Resolve() //with prejudice - if(banned_client && banned_client.ckey == banckey) + if(banned_client && banned_client.ckey == ckey) qdel(banned_client) return 1 @@ -249,18 +252,18 @@ to_chat(usr, "Cancelled") return - var/datum/DBQuery/query_edit_ban_get_details = SSdbcore.NewQuery("SELECT ckey, duration, reason FROM [format_table_name("ban")] WHERE id = [banid]") + var/datum/DBQuery/query_edit_ban_get_details = SSdbcore.NewQuery("SELECT (SELECT byond_key FROM [format_table_name("player")] WHERE [format_table_name("player")].ckey = [format_table_name("ban")].ckey), duration, reason FROM [format_table_name("ban")] WHERE id = [banid]") if(!query_edit_ban_get_details.warn_execute()) qdel(query_edit_ban_get_details) return - var/eckey = usr.ckey //Editing admin ckey - var/pckey //(banned) Player ckey + var/e_key = usr.key //Editing admin key + var/p_key //(banned) Player key var/duration //Old duration var/reason //Old reason if(query_edit_ban_get_details.NextRow()) - pckey = query_edit_ban_get_details.item[1] + p_key = query_edit_ban_get_details.item[1] duration = query_edit_ban_get_details.item[2] reason = query_edit_ban_get_details.item[3] else @@ -275,33 +278,33 @@ switch(param) if("reason") if(!value) - value = input("Insert the new reason for [pckey]'s ban", "New Reason", "[reason]", null) as null|text + value = input("Insert the new reason for [p_key]'s ban", "New Reason", "[reason]", null) as null|text value = sanitizeSQL(value) if(!value) to_chat(usr, "Cancelled") return - var/datum/DBQuery/query_edit_ban_reason = SSdbcore.NewQuery("UPDATE [format_table_name("ban")] SET reason = '[value]', edits = CONCAT(edits,'- [eckey] changed ban reason from \\\"[reason]\\\" to \\\"[value]\\\"
    ') WHERE id = [banid]") + var/datum/DBQuery/query_edit_ban_reason = SSdbcore.NewQuery("UPDATE [format_table_name("ban")] SET reason = '[value]', edits = CONCAT(edits,'- [e_key] changed ban reason from \\\"[reason]\\\" to \\\"[value]\\\"
    ') WHERE id = [banid]") if(!query_edit_ban_reason.warn_execute()) qdel(query_edit_ban_reason) return qdel(query_edit_ban_reason) - message_admins("[key_name_admin(usr)] has edited a ban for [pckey]'s reason from [reason] to [value]") + message_admins("[key_name_admin(usr)] has edited a ban for [p_key]'s reason from [reason] to [value]") if("duration") if(!value) - value = input("Insert the new duration (in minutes) for [pckey]'s ban", "New Duration", "[duration]", null) as null|num + value = input("Insert the new duration (in minutes) for [p_key]'s ban", "New Duration", "[duration]", null) as null|num if(!isnum(value) || !value) to_chat(usr, "Cancelled") return - var/datum/DBQuery/query_edit_ban_duration = SSdbcore.NewQuery("UPDATE [format_table_name("ban")] SET duration = [value], edits = CONCAT(edits,'- [eckey] changed ban duration from [duration] to [value]
    '), expiration_time = DATE_ADD(bantime, INTERVAL [value] MINUTE) WHERE id = [banid]") + var/datum/DBQuery/query_edit_ban_duration = SSdbcore.NewQuery("UPDATE [format_table_name("ban")] SET duration = [value], edits = CONCAT(edits,'- [e_key] changed ban duration from [duration] to [value]
    '), expiration_time = DATE_ADD(bantime, INTERVAL [value] MINUTE) WHERE id = [banid]") if(!query_edit_ban_duration.warn_execute()) qdel(query_edit_ban_duration) return qdel(query_edit_ban_duration) - message_admins("[key_name_admin(usr)] has edited a ban for [pckey]'s duration from [duration] to [value]") + message_admins("[key_name_admin(usr)] has edited a ban for [p_key]'s duration from [duration] to [value]") if("unban") - if(alert("Unban [pckey]?", "Unban?", "Yes", "No") == "Yes") + if(alert("Unban [p_key]?", "Unban?", "Yes", "No") == "Yes") DB_ban_unban_by_id(banid) return else @@ -316,20 +319,20 @@ if(!check_rights(R_BAN)) return - var/sql = "SELECT ckey FROM [format_table_name("ban")] WHERE id = [id]" + var/sql = "SELECT (SELECT byond_key FROM [format_table_name("player")] WHERE [format_table_name("player")].ckey = [format_table_name("ban")].ckey) FROM [format_table_name("ban")] WHERE id = [id]" if(!SSdbcore.Connect()) return var/ban_number = 0 //failsafe - var/pckey + var/p_key var/datum/DBQuery/query_unban_get_ckey = SSdbcore.NewQuery(sql) if(!query_unban_get_ckey.warn_execute()) qdel(query_unban_get_ckey) return while(query_unban_get_ckey.NextRow()) - pckey = query_unban_get_ckey.item[1] + p_key = query_unban_get_ckey.item[1] ban_number++; qdel(query_unban_get_ckey) @@ -354,7 +357,7 @@ qdel(query_unban) return qdel(query_unban) - message_admins("[key_name_admin(usr)] has lifted [pckey]'s ban.") + message_admins("[key_name_admin(usr)] has lifted [p_key]'s ban.") /client/proc/DB_ban_panel() set category = "Admin" @@ -399,7 +402,7 @@ output += "" output += "" output += "" - output += "Ckey: " + output += "Key: " output += "IP: " output += "Computer id: " output += "Duration: " @@ -474,7 +477,7 @@ output += "OPTIONS" output += "" var/limit = " LIMIT [bansperpage * page], [bansperpage]" - var/datum/DBQuery/query_search_bans = SSdbcore.NewQuery("SELECT id, bantime, bantype, reason, job, duration, expiration_time, ckey, a_ckey, unbanned, unbanned_ckey, unbanned_datetime, edits, round_id FROM [format_table_name("ban")] WHERE [search] ORDER BY bantime DESC[limit]") + var/datum/DBQuery/query_search_bans = SSdbcore.NewQuery("SELECT id, bantime, bantype, reason, job, duration, expiration_time, (SELECT byond_key FROM [format_table_name("player")] WHERE [format_table_name("player")].ckey = [format_table_name("ban")].ckey), (SELECT byond_key FROM [format_table_name("player")] WHERE [format_table_name("player")].ckey = [format_table_name("ban")].a_ckey), unbanned, (SELECT byond_key FROM [format_table_name("player")] WHERE [format_table_name("player")].ckey = [format_table_name("ban")].unbanned_ckey), unbanned_datetime, edits, round_id FROM [format_table_name("ban")] WHERE [search] ORDER BY bantime DESC[limit]") if(!query_search_bans.warn_execute()) qdel(query_search_bans) return @@ -487,10 +490,10 @@ var/job = query_search_bans.item[5] var/duration = query_search_bans.item[6] var/expiration = query_search_bans.item[7] - var/ckey = query_search_bans.item[8] - var/ackey = query_search_bans.item[9] + var/ban_key = query_search_bans.item[8] + var/a_key = query_search_bans.item[9] var/unbanned = query_search_bans.item[10] - var/unbanckey = query_search_bans.item[11] + var/unban_key = query_search_bans.item[11] var/unbantime = query_search_bans.item[12] var/edits = query_search_bans.item[13] var/round_id = query_search_bans.item[14] @@ -518,9 +521,9 @@ output += "" output += "[typedesc]" - output += "[ckey]" + output += "[ban_key]" output += "[bantime] (Round ID: [round_id])" - output += "[ackey]" + output += "[a_key]" output += "[(unbanned) ? "" : "Unban"]" output += "" output += "" @@ -535,7 +538,7 @@ output += "" if(unbanned) output += "" - output += "UNBANNED by admin [unbanckey] on [unbantime]" + output += "UNBANNED by admin [unban_key] on [unbantime]" output += "" output += "" output += " " diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm index dc38e2dca9..7d9e50d070 100644 --- a/code/modules/admin/IsBanned.dm +++ b/code/modules/admin/IsBanned.dm @@ -23,7 +23,7 @@ //Whitelist if(CONFIG_GET(flag/usewhitelist)) - if(!check_whitelist(ckey(key))) + if(!check_whitelist(ckey)) if (admin) log_admin("The admin [key] has been allowed to bypass the whitelist") message_admins("The admin [key] has been allowed to bypass the whitelist") @@ -50,7 +50,7 @@ if(CONFIG_GET(flag/ban_legacy_system)) //Ban Checking - . = CheckBan( ckey(key), computer_id, address ) + . = CheckBan(ckey, computer_id, address ) if(.) if (admin) log_admin("The admin [key] has been allowed to bypass a matching ban on [.["key"]]") @@ -61,11 +61,8 @@ return . else - - var/ckeytext = ckey(key) - if(!SSdbcore.Connect()) - var/msg = "Ban database connection failure. Key [ckeytext] not checked" + var/msg = "Ban database connection failure. Key [ckey] not checked" log_world(msg) message_admins(msg) return @@ -78,13 +75,13 @@ if(computer_id) cidquery = " OR computerid = '[computer_id]' " - var/datum/DBQuery/query_ban_check = SSdbcore.NewQuery("SELECT ckey, a_ckey, reason, expiration_time, duration, bantime, bantype, id, round_id FROM [format_table_name("ban")] WHERE (ckey = '[ckeytext]' [ipquery] [cidquery]) AND (bantype = 'PERMABAN' OR bantype = 'ADMIN_PERMABAN' OR ((bantype = 'TEMPBAN' OR bantype = 'ADMIN_TEMPBAN') AND expiration_time > Now())) AND isnull(unbanned)") + var/datum/DBQuery/query_ban_check = SSdbcore.NewQuery("SELECT (SELECT byond_key FROM [format_table_name("player")] WHERE [format_table_name("player")].ckey = [format_table_name("ban")].ckey), (SELECT byond_key FROM [format_table_name("player")] WHERE [format_table_name("player")].ckey = [format_table_name("ban")].a_ckey), reason, expiration_time, duration, bantime, bantype, id, round_id FROM [format_table_name("ban")] WHERE (ckey = '[ckey]' [ipquery] [cidquery]) AND (bantype = 'PERMABAN' OR bantype = 'ADMIN_PERMABAN' OR ((bantype = 'TEMPBAN' OR bantype = 'ADMIN_TEMPBAN') AND expiration_time > Now())) AND isnull(unbanned)") if(!query_ban_check.Execute(async = TRUE)) qdel(query_ban_check) return while(query_ban_check.NextRow()) - var/pckey = query_ban_check.item[1] - var/ackey = query_ban_check.item[2] + var/pkey = query_ban_check.item[1] + var/akey = query_ban_check.item[2] var/reason = query_ban_check.item[3] var/expiration = query_ban_check.item[4] var/duration = query_ban_check.item[5] @@ -95,16 +92,16 @@ if (bantype == "ADMIN_PERMABAN" || bantype == "ADMIN_TEMPBAN") //admin bans MUST match on ckey to prevent cid-spoofing attacks // as well as dynamic ip abuse - if (pckey != ckey) + if (ckey(pkey) != ckey) continue if (admin) if (bantype == "ADMIN_PERMABAN" || bantype == "ADMIN_TEMPBAN") log_admin("The admin [key] is admin banned (#[banid]), and has been disallowed access") message_admins("The admin [key] is admin banned (#[banid]), and has been disallowed access") else - log_admin("The admin [key] has been allowed to bypass a matching ban on [pckey] (#[banid])") - message_admins("The admin [key] has been allowed to bypass a matching ban on [pckey] (#[banid])") - addclientmessage(ckey,"You have been allowed to bypass a matching ban on [pckey] (#[banid])") + log_admin("The admin [key] has been allowed to bypass a matching ban on [pkey] (#[banid])") + message_admins("The admin [key] has been allowed to bypass a matching ban on [pkey] (#[banid])") + addclientmessage(ckey,"You have been allowed to bypass a matching ban on [pkey] (#[banid])") continue var/expires = "" if(text2num(duration) > 0) @@ -112,7 +109,7 @@ else expires = " The is a permanent ban." - var/desc = "\nReason: You, or another user of this computer or connection ([pckey]) is banned from playing here. The ban reason is:\n[reason]\nThis ban (BanID #[banid]) was applied by [ackey] on [bantime] during round ID [ban_round_id], [expires]" + var/desc = "\nReason: You, or another user of this computer or connection ([pkey]) is banned from playing here. The ban reason is:\n[reason]\nThis ban (BanID #[banid]) was applied by [akey] on [bantime] during round ID [ban_round_id], [expires]" . = list("reason"="[bantype]", "desc"="[desc]") diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm index 1e092a16e9..d81d037c50 100644 --- a/code/modules/admin/NewBan.dm +++ b/code/modules/admin/NewBan.dm @@ -98,22 +98,22 @@ GLOBAL_PROTECT(Banlist) return 1 -/proc/AddBan(ckey, computerid, reason, bannedby, temp, minutes, address) +/proc/AddBan(key, computerid, reason, bannedby, temp, minutes, address) var/bantimestamp - + var/ban_ckey = ckey(key) if (temp) UpdateTime() bantimestamp = GLOB.CMinutes + minutes GLOB.Banlist.cd = "/base" - if ( GLOB.Banlist.dir.Find("[ckey][computerid]") ) + if ( GLOB.Banlist.dir.Find("[ban_ckey][computerid]") ) to_chat(usr, text("Ban already exists.")) return 0 else - GLOB.Banlist.dir.Add("[ckey][computerid]") - GLOB.Banlist.cd = "/base/[ckey][computerid]" - WRITE_FILE(GLOB.Banlist["key"], ckey) + GLOB.Banlist.dir.Add("[ban_ckey][computerid]") + GLOB.Banlist.cd = "/base/[ban_ckey][computerid]" + WRITE_FILE(GLOB.Banlist["key"], ban_ckey) WRITE_FILE(GLOB.Banlist["id"], computerid) WRITE_FILE(GLOB.Banlist["ip"], address) WRITE_FILE(GLOB.Banlist["reason"], reason) @@ -123,9 +123,9 @@ GLOBAL_PROTECT(Banlist) if (temp) WRITE_FILE(GLOB.Banlist["minutes"], bantimestamp) if(!temp) - create_message("note", ckey, bannedby, "Permanently banned - [reason]", null, null, 0, 0) + create_message("note", key, bannedby, "Permanently banned - [reason]", null, null, 0, 0) else - create_message("note", ckey, bannedby, "Banned for [minutes] minutes - [reason]", null, null, 0, 0) + create_message("note", key, bannedby, "Banned for [minutes] minutes - [reason]", null, null, 0, 0) return 1 /proc/RemoveBan(foldername) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 56662a2157..b1353ac036 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -29,7 +29,7 @@ body += "Options panel for [M]" if(M.client) body += " played by [M.client] " - body += "\[[M.client.holder ? M.client.holder.rank : "Player"]\]" + body += "\[[M.client.holder ? M.client.holder.rank : "Player"]\]" if(CONFIG_GET(flag/use_exp_tracking)) body += "\[" + M.client.get_exp_living() + "\]" @@ -50,6 +50,10 @@ body += "\[decrease\] " body += "\[set\] " body += "\[zero\]" + var/full_version = "Unknown" + if(M.client.byond_version) + full_version = "[M.client.byond_version].[M.client.byond_build ? M.client.byond_build : "xxx"]" + body += "
    \[Byond version: [full_version]\]
    " body += "

    \[ " @@ -239,7 +243,7 @@ if(CHANNEL.is_admin_channel) dat+="[CHANNEL.channel_name]
    " else - dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ()]
    " + dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ""]
    " dat+="

    Refresh" dat+="
    Back" if(2) @@ -311,7 +315,7 @@ dat+="No feed channels found active...
    " else for(var/datum/newscaster/feed_channel/CHANNEL in GLOB.news_network.network_channels) - dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ()]
    " + dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ""]
    " dat+="
    Cancel" if(11) dat+="Nanotrasen D-Notice Handler
    " @@ -322,7 +326,7 @@ dat+="No feed channels found active...
    " else for(var/datum/newscaster/feed_channel/CHANNEL in GLOB.news_network.network_channels) - dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ()]
    " + dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ""]
    " dat+="
    Back" if(12) @@ -823,7 +827,7 @@ continue if(message) to_chat(C, message) - kicked_client_names.Add("[C.ckey]") + kicked_client_names.Add("[C.key]") qdel(C) return kicked_client_names @@ -852,8 +856,8 @@ tomob.ghostize(0) - message_admins("[key_name_admin(usr)] has put [frommob.ckey] in control of [tomob.name].") - log_admin("[key_name(usr)] stuffed [frommob.ckey] into [tomob.name].") + message_admins("[key_name_admin(usr)] has put [frommob.key] in control of [tomob.name].") + log_admin("[key_name(usr)] stuffed [frommob.key] into [tomob.name].") SSblackbox.record_feedback("tally", "admin_verb", 1, "Ghost Drag Control") tomob.ckey = frommob.ckey diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm index 812f87bcf3..bfd4ec5494 100644 --- a/code/modules/admin/admin_ranks.dm +++ b/code/modules/admin/admin_ranks.dm @@ -42,9 +42,6 @@ GLOBAL_PROTECT(protected_ranks) return QDEL_HINT_LETMELIVE . = ..() -/datum/admin_rank/can_vv_get(var_name) - return FALSE - /datum/admin_rank/vv_edit_var(var_name, var_value) return FALSE @@ -74,7 +71,7 @@ GLOBAL_PROTECT(protected_ranks) if("varedit") flag = R_VAREDIT if("everything","host","all") - flag = ALL + flag = R_EVERYTHING if("sound","sounds") flag = R_SOUNDS if("spawn","create") @@ -185,9 +182,12 @@ GLOBAL_PROTECT(protected_ranks) return FALSE var/list/json = json_decode(backup_file) for(var/J in json["ranks"]) + var/skip for(var/datum/admin_rank/R in GLOB.admin_ranks) if(R.name == "[J]") //this rank was already loaded from txt override - continue + skip = TRUE + if(skip) + continue var/datum/admin_rank/R = new("[J]", json["ranks"]["[J]"]["include rights"], json["ranks"]["[J]"]["exclude rights"], json["ranks"]["[J]"]["can edit rights"]) if(!R) continue @@ -269,9 +269,12 @@ GLOBAL_PROTECT(protected_ranks) return backup_file_json = json_decode(backup_file) for(var/J in backup_file_json["admins"]) + var/skip for(var/A in GLOB.admin_datums + GLOB.deadmins) if(A == "[J]") //this admin was already loaded from txt override - continue + skip = TRUE + if(skip) + continue new /datum/admins(rank_names[ckeyEx(backup_file_json["admins"]["[J]"])], ckey("[J]")) #ifdef TESTING var/msg = "Admins Built:\n" diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 7ba3e699d4..3ccf7e6e79 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -158,6 +158,7 @@ GLOBAL_LIST_INIT(admin_verbs_debug, world.AVerbsDebug()) /client/proc/pump_random_event, /client/proc/cmd_display_init_log, /client/proc/cmd_display_overlay_log, + /client/proc/reload_configuration, /datum/admins/proc/create_or_modify_area, ) GLOBAL_PROTECT(admin_verbs_possess) @@ -181,7 +182,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list( /client/proc/admin_ghost, /client/proc/toggle_view_range, /client/proc/cmd_admin_subtle_message, - /client/proc/cmd_admin_headset_message, + /client/proc/cmd_admin_headset_message, /client/proc/cmd_admin_check_contents, /datum/admins/proc/access_news_network, /client/proc/admin_call_shuttle, diff --git a/code/modules/admin/banjob.dm b/code/modules/admin/banjob.dm index fbb97fcea7..20a7228fb5 100644 --- a/code/modules/admin/banjob.dm +++ b/code/modules/admin/banjob.dm @@ -30,6 +30,7 @@ C.jobbancache = list() var/datum/DBQuery/query_jobban_build_cache = SSdbcore.NewQuery("SELECT job, reason FROM [format_table_name("ban")] WHERE ckey = '[sanitizeSQL(C.ckey)]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned)") if(!query_jobban_build_cache.warn_execute()) + qdel(query_jobban_build_cache) return while(query_jobban_build_cache.NextRow()) C.jobbancache[query_jobban_build_cache.item[1]] = query_jobban_build_cache.item[2] diff --git a/code/modules/admin/check_antagonists.dm b/code/modules/admin/check_antagonists.dm index 9adc583705..30fa664f42 100644 --- a/code/modules/admin/check_antagonists.dm +++ b/code/modules/admin/check_antagonists.dm @@ -154,12 +154,12 @@ else dat += "ETA: [(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]
    " dat += "Continuous Round Status
    " - dat += "[CONFIG_GET(keyed_flag_list/continuous)[SSticker.mode.config_tag] ? "Continue if antagonists die" : "End on antagonist death"]" - if(CONFIG_GET(keyed_flag_list/continuous)[SSticker.mode.config_tag]) - dat += ", [CONFIG_GET(keyed_flag_list/midround_antag)[SSticker.mode.config_tag] ? "creating replacement antagonists" : "not creating new antagonists"]
    " + dat += "[CONFIG_GET(keyed_list/continuous)[SSticker.mode.config_tag] ? "Continue if antagonists die" : "End on antagonist death"]" + if(CONFIG_GET(keyed_list/continuous)[SSticker.mode.config_tag]) + dat += ", [CONFIG_GET(keyed_list/midround_antag)[SSticker.mode.config_tag] ? "creating replacement antagonists" : "not creating new antagonists"]
    " else dat += "
    " - if(CONFIG_GET(keyed_flag_list/midround_antag)[SSticker.mode.config_tag]) + if(CONFIG_GET(keyed_list/midround_antag)[SSticker.mode.config_tag]) dat += "Time limit: [CONFIG_GET(number/midround_antag_time_check)] minutes into round
    " dat += "Living crew limit: [CONFIG_GET(number/midround_antag_life_check) * 100]% of crew alive
    " dat += "If limits past: [SSticker.mode.round_ends_with_antag_death ? "End The Round" : "Continue As Extended"]
    " diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index fd526e4aab..11fb4e7a8b 100644 --- a/code/modules/admin/holder2.dm +++ b/code/modules/admin/holder2.dm @@ -137,7 +137,7 @@ GLOBAL_PROTECT(href_token) /datum/admins/proc/check_if_greater_rights_than_holder(datum/admins/other) if(!other) return 1 //they have no rights - if(rank.rights == 65535) + if(rank.rights == R_EVERYTHING) return 1 //we have all the rights if(src == other) return 1 //you always have more rights than yourself @@ -146,9 +146,6 @@ GLOBAL_PROTECT(href_token) return 1 //we have all the rights they have and more return 0 -/datum/admins/can_vv_get(var_name, var_value) - return FALSE //nice try trialmin - /datum/admins/vv_edit_var(var_name, var_value) return FALSE //nice try trialmin diff --git a/code/modules/admin/permissionedit.dm b/code/modules/admin/permissionedit.dm index ac55eac872..c962aaac41 100644 --- a/code/modules/admin/permissionedit.dm +++ b/code/modules/admin/permissionedit.dm @@ -44,29 +44,29 @@ pagecount++ output += "|" var/limit = " LIMIT [logssperpage * page], [logssperpage]" - var/datum/DBQuery/query_search_admin_logs = SSdbcore.NewQuery("SELECT datetime, round_id, adminckey, operation, target, log FROM [format_table_name("admin_log")][search] ORDER BY datetime DESC[limit]") + var/datum/DBQuery/query_search_admin_logs = SSdbcore.NewQuery("SELECT datetime, round_id, (SELECT byond_key FROM [format_table_name("player")] WHERE ckey = adminckey), operation, IF(ckey IS NULL, target, byond_key), log FROM [format_table_name("admin_log")] LEFT JOIN [format_table_name("player")] ON target = ckey[search] ORDER BY datetime DESC[limit]") if(!query_search_admin_logs.warn_execute()) qdel(query_search_admin_logs) return while(query_search_admin_logs.NextRow()) var/datetime = query_search_admin_logs.item[1] var/round_id = query_search_admin_logs.item[2] - var/admin_ckey = query_search_admin_logs.item[3] + var/admin_key = query_search_admin_logs.item[3] operation = query_search_admin_logs.item[4] target = query_search_admin_logs.item[5] var/log = query_search_admin_logs.item[6] - output += "

    [datetime] | Round ID [round_id] | Admin [admin_ckey] | Operation [operation] on [target]
    [log]


    " + output += "

    [datetime] | Round ID [round_id] | Admin [admin_key] | Operation [operation] on [target]
    [log]


    " qdel(query_search_admin_logs) if(action == 2) output += "

    Admin ckeys with invalid ranks

    " - var/datum/DBQuery/query_check_admin_errors = SSdbcore.NewQuery("SELECT ckey, [format_table_name("admin")].rank FROM [format_table_name("admin")] LEFT JOIN [format_table_name("admin_ranks")] ON [format_table_name("admin_ranks")].rank = [format_table_name("admin")].rank WHERE [format_table_name("admin_ranks")].rank IS NULL") + var/datum/DBQuery/query_check_admin_errors = SSdbcore.NewQuery("SELECT (SELECT byond_key FROM [format_table_name("player")] WHERE [format_table_name("player")].ckey = [format_table_name("admin")].ckey), [format_table_name("admin")].rank FROM [format_table_name("admin")] LEFT JOIN [format_table_name("admin_ranks")] ON [format_table_name("admin_ranks")].rank = [format_table_name("admin")].rank WHERE [format_table_name("admin_ranks")].rank IS NULL") if(!query_check_admin_errors.warn_execute()) qdel(query_check_admin_errors) return while(query_check_admin_errors.NextRow()) - var/admin_ckey = query_check_admin_errors.item[1] + var/admin_key = query_check_admin_errors.item[1] var/admin_rank = query_check_admin_errors.item[2] - output += "[admin_ckey] has non-existent rank [admin_rank] | \[Change Rank\] | \[Remove\]" + output += "[admin_key] has non-existent rank [admin_rank] | \[Change Rank\] | \[Remove\]" output += "
    " qdel(query_check_admin_errors) output += "

    Unused ranks

    " @@ -104,16 +104,18 @@ if (!D) continue var/deadminlink = "" + if(D.owner) + adm_ckey = D.owner.key if (D.deadmined) - deadminlink = " \[RA\]" + deadminlink = " \[RA\]" else - deadminlink = " \[DA\]" + deadminlink = " \[DA\]" output += "" - output += "[adm_ckey]
    [deadminlink]\[-\]\[SYNC TGDB\]" - output += "[D.rank.name]" - output += "[rights2text(D.rank.include_rights," ")]" - output += "[rights2text(D.rank.exclude_rights," ", "-")]" - output += "[rights2text(D.rank.can_edit_rights," ", "*")]" + output += "[adm_ckey]
    [deadminlink]\[-\]\[SYNC TGDB\]" + output += "[D.rank.name]" + output += "[rights2text(D.rank.include_rights," ")]" + output += "[rights2text(D.rank.exclude_rights," ", "-")]" + output += "[rights2text(D.rank.can_edit_rights," ", "*")]" output += "" output += "
    Search:
    " if(QDELETED(usr)) @@ -130,7 +132,8 @@ return var/datum/asset/permissions_assets = get_asset_datum(/datum/asset/simple/permissions) permissions_assets.send(src) - var/admin_ckey = ckey(href_list["ckey"]) + var/admin_key = href_list["key"] + var/admin_ckey = ckey(admin_key) var/datum/admins/D = GLOB.admin_datums[admin_ckey] var/use_db var/task = href_list["editrights"] @@ -172,38 +175,39 @@ if(!D) return if((task != "sync") && !check_if_greater_rights_than_holder(D)) - message_admins("[key_name_admin(usr)] attempted to change the rank of [admin_ckey] without sufficient rights.") - log_admin("[key_name(usr)] attempted to change the rank of [admin_ckey] without sufficient rights.") + message_admins("[key_name_admin(usr)] attempted to change the rank of [admin_key] without sufficient rights.") + log_admin("[key_name(usr)] attempted to change the rank of [admin_key] without sufficient rights.") return switch(task) if("add") - admin_ckey = add_admin(admin_ckey, use_db) + admin_ckey = add_admin(admin_ckey, admin_key, use_db) if(!admin_ckey) return - change_admin_rank(admin_ckey, use_db, null, legacy_only) + change_admin_rank(admin_ckey, admin_key, use_db, null, legacy_only) if("remove") - remove_admin(admin_ckey, use_db, D) + remove_admin(admin_ckey, admin_key, use_db, D) if("rank") - change_admin_rank(admin_ckey, use_db, D, legacy_only) + change_admin_rank(admin_ckey, admin_key, use_db, D, legacy_only) if("permissions") - change_admin_flags(admin_ckey, use_db, D, legacy_only) + change_admin_flags(admin_ckey, admin_key, use_db, D, legacy_only) if("activate") - force_readmin(admin_ckey, D) + force_readmin(admin_key, D) if("deactivate") - force_deadmin(admin_ckey, D) + force_deadmin(admin_key, D) if("sync") - sync_lastadminrank(admin_ckey, D) + sync_lastadminrank(admin_ckey, admin_key, D) edit_admin_permissions() -/datum/admins/proc/add_admin(admin_ckey, use_db) +/datum/admins/proc/add_admin(admin_ckey, admin_key, use_db) if(admin_ckey) . = admin_ckey else - . = ckey(input("New admin's ckey","Admin ckey") as text|null) + admin_key = input("New admin's key","Admin key") as text|null + . = ckey(admin_key) if(!.) return FALSE if(!admin_ckey && (. in GLOB.admin_datums+GLOB.deadmins)) - to_chat(usr, "[.] is already an admin.") + to_chat(usr, "[admin_key] is already an admin.") return FALSE if(use_db) . = sanitizeSQL(.) @@ -214,7 +218,7 @@ return FALSE if(query_admin_in_db.NextRow()) qdel(query_admin_in_db) - to_chat(usr, "[.] already listed in admin database. Check the Management tab if they don't appear in the list of admins.") + to_chat(usr, "[admin_key] already listed in admin database. Check the Management tab if they don't appear in the list of admins.") return FALSE qdel(query_admin_in_db) var/datum/DBQuery/query_add_admin = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin")] (ckey, rank) VALUES ('[.]', 'NEW ADMIN')") @@ -228,14 +232,14 @@ return FALSE qdel(query_add_admin_log) -/datum/admins/proc/remove_admin(admin_ckey, use_db, datum/admins/D) +/datum/admins/proc/remove_admin(admin_ckey, admin_key, use_db, datum/admins/D) if(alert("Are you sure you want to remove [admin_ckey]?","Confirm Removal","Do it","Cancel") == "Do it") GLOB.admin_datums -= admin_ckey GLOB.deadmins -= admin_ckey if(D) D.disassociate() - var/m1 = "[key_name_admin(usr)] removed [admin_ckey] from the admins list [use_db ? "permanently" : "temporarily"]" - var/m2 = "[key_name(usr)] removed [admin_ckey] from the admins list [use_db ? "permanently" : "temporarily"]" + var/m1 = "[key_name_admin(usr)] removed [admin_key] from the admins list [use_db ? "permanently" : "temporarily"]" + var/m2 = "[key_name(usr)] removed [admin_key] from the admins list [use_db ? "permanently" : "temporarily"]" if(use_db) var/datum/DBQuery/query_add_rank = SSdbcore.NewQuery("DELETE FROM [format_table_name("admin")] WHERE ckey = '[admin_ckey]'") if(!query_add_rank.warn_execute()) @@ -247,25 +251,25 @@ qdel(query_add_rank_log) return qdel(query_add_rank_log) - sync_lastadminrank(admin_ckey) + sync_lastadminrank(admin_ckey, admin_key) message_admins(m1) log_admin(m2) -/datum/admins/proc/force_readmin(admin_ckey, datum/admins/D) +/datum/admins/proc/force_readmin(admin_key, datum/admins/D) if(!D || !D.deadmined) return D.activate() - message_admins("[key_name_admin(usr)] forcefully readmined [admin_ckey]") - log_admin("[key_name(usr)] forcefully readmined [admin_ckey]") + message_admins("[key_name_admin(usr)] forcefully readmined [admin_key]") + log_admin("[key_name(usr)] forcefully readmined [admin_key]") -/datum/admins/proc/force_deadmin(admin_ckey, datum/admins/D) +/datum/admins/proc/force_deadmin(admin_key, datum/admins/D) if(!D || D.deadmined) return - message_admins("[key_name_admin(usr)] forcefully deadmined [admin_ckey]") - log_admin("[key_name(usr)] forcefully deadmined [admin_ckey]") + message_admins("[key_name_admin(usr)] forcefully deadmined [admin_key]") + log_admin("[key_name(usr)] forcefully deadmined [admin_key]") D.deactivate() //after logs so the deadmined admin can see the message. -/datum/admins/proc/change_admin_rank(admin_ckey, use_db, datum/admins/D, legacy_only) +/datum/admins/proc/change_admin_rank(admin_ckey, admin_key, use_db, datum/admins/D, legacy_only) var/datum/admin_rank/R var/list/rank_names = list() if(!use_db || (use_db && !legacy_only)) @@ -285,8 +289,8 @@ else R = new(new_rank) //blank new admin_rank GLOB.admin_ranks += R - var/m1 = "[key_name_admin(usr)] edited the admin rank of [admin_ckey] to [new_rank] [use_db ? "permanently" : "temporarily"]" - var/m2 = "[key_name(usr)] edited the admin rank of [admin_ckey] to [new_rank] [use_db ? "permanently" : "temporarily"]" + var/m1 = "[key_name_admin(usr)] edited the admin rank of [admin_key] to [new_rank] [use_db ? "permanently" : "temporarily"]" + var/m2 = "[key_name(usr)] edited the admin rank of [admin_key] to [new_rank] [use_db ? "permanently" : "temporarily"]" if(use_db) new_rank = sanitizeSQL(new_rank) //if a player was tempminned before having a permanent change made to their rank they won't yet be in the db @@ -296,7 +300,7 @@ qdel(query_admin_in_db) return if(!query_admin_in_db.NextRow()) - add_admin(admin_ckey, TRUE) + add_admin(admin_ckey, admin_key, TRUE) old_rank = "NEW ADMIN" else old_rank = query_admin_in_db.item[1] @@ -339,18 +343,18 @@ message_admins(m1) log_admin(m2) -/datum/admins/proc/change_admin_flags(admin_ckey, use_db, datum/admins/D, legacy_only) - var/new_flags = input_bitfield(usr, "Include permission flags
    [use_db ? "This will affect ALL admins with this rank." : "This will affect only the current admin [admin_ckey]"]", "admin_flags", D.rank.include_rights, 350, 590, allowed_edit_list = usr.client.holder.rank.can_edit_rights) +/datum/admins/proc/change_admin_flags(admin_ckey, admin_key, use_db, datum/admins/D, legacy_only) + var/new_flags = input_bitfield(usr, "Include permission flags
    [use_db ? "This will affect ALL admins with this rank." : "This will affect only the current admin [admin_key]"]", "admin_flags", D.rank.include_rights, 350, 590, allowed_edit_list = usr.client.holder.rank.can_edit_rights) if(isnull(new_flags)) return - var/new_exclude_flags = input_bitfield(usr, "Exclude permission flags
    Flags enabled here will be removed from a rank.
    Note these take precedence over included flags.
    [use_db ? "This will affect ALL admins with this rank." : "This will affect only the current admin [admin_ckey]"]", "admin_flags", D.rank.exclude_rights, 350, 670, "red", usr.client.holder.rank.can_edit_rights) + var/new_exclude_flags = input_bitfield(usr, "Exclude permission flags
    Flags enabled here will be removed from a rank.
    Note these take precedence over included flags.
    [use_db ? "This will affect ALL admins with this rank." : "This will affect only the current admin [admin_key]"]", "admin_flags", D.rank.exclude_rights, 350, 670, "red", usr.client.holder.rank.can_edit_rights) if(isnull(new_exclude_flags)) return - var/new_can_edit_flags = input_bitfield(usr, "Editable permission flags
    These are the flags this rank is allowed to edit if they have access to the permissions panel.
    They will be unable to modify admins to a rank that has a flag not included here.
    [use_db ? "This will affect ALL admins with this rank." : "This will affect only the current admin [admin_ckey]"]", "admin_flags", D.rank.can_edit_rights, 350, 710, allowed_edit_list = usr.client.holder.rank.can_edit_rights) + var/new_can_edit_flags = input_bitfield(usr, "Editable permission flags
    These are the flags this rank is allowed to edit if they have access to the permissions panel.
    They will be unable to modify admins to a rank that has a flag not included here.
    [use_db ? "This will affect ALL admins with this rank." : "This will affect only the current admin [admin_key]"]", "admin_flags", D.rank.can_edit_rights, 350, 710, allowed_edit_list = usr.client.holder.rank.can_edit_rights) if(isnull(new_can_edit_flags)) return - var/m1 = "[key_name_admin(usr)] edited the permissions of [use_db ? " rank [D.rank.name] permanently" : "[admin_ckey] temporarily"]" - var/m2 = "[key_name(usr)] edited the permissions of [use_db ? " rank [D.rank.name] permanently" : "[admin_ckey] temporarily"]" + var/m1 = "[key_name_admin(usr)] edited the permissions of [use_db ? " rank [D.rank.name] permanently" : "[admin_key] temporarily"]" + var/m2 = "[key_name(usr)] edited the permissions of [use_db ? " rank [D.rank.name] permanently" : "[admin_key] temporarily"]" if(use_db || legacy_only) var/old_flags var/old_exclude_flags @@ -446,7 +450,7 @@ message_admins(m1) log_admin(m2) -/datum/admins/proc/sync_lastadminrank(admin_ckey, datum/admins/D) +/datum/admins/proc/sync_lastadminrank(admin_ckey, admin_key, datum/admins/D) var/sqlrank = "Player" if (D) sqlrank = sanitizeSQL(D.rank.name) @@ -456,4 +460,4 @@ qdel(query_sync_lastadminrank) return qdel(query_sync_lastadminrank) - to_chat(usr, "Sync of [admin_ckey] successful.") + to_chat(usr, "Sync of [admin_key] successful.") diff --git a/code/modules/admin/sql_message_system.dm b/code/modules/admin/sql_message_system.dm index 2ee3b1ca2d..04dda31d48 100644 --- a/code/modules/admin/sql_message_system.dm +++ b/code/modules/admin/sql_message_system.dm @@ -1,28 +1,32 @@ -/proc/create_message(type, target_ckey, admin_ckey, text, timestamp, server, secret, logged = 1, browse) +/proc/create_message(type, target_key, admin_ckey, text, timestamp, server, secret, logged = 1, browse) if(!SSdbcore.Connect()) to_chat(usr, "Failed to establish database connection.") return if(!type) return - if(!target_ckey && (type == "note" || type == "message" || type == "watchlist entry")) - var/new_ckey = ckey(input(usr,"Who would you like to create a [type] for?","Enter a ckey",null) as null|text) - if(!new_ckey) + var/target_ckey + if(!target_key && (type == "note" || type == "message" || type == "watchlist entry")) + var/new_key = input(usr,"Who would you like to create a [type] for?","Enter a key or ckey",null) as null|text + if(!new_key) return - new_ckey = sanitizeSQL(new_ckey) + var/new_ckey = sanitizeSQL(ckey(new_key)) var/datum/DBQuery/query_find_ckey = SSdbcore.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE ckey = '[new_ckey]'") if(!query_find_ckey.warn_execute()) qdel(query_find_ckey) return if(!query_find_ckey.NextRow()) - if(alert(usr, "[new_ckey] has not been seen before, are you sure you want to create a [type] for them?", "Unknown ckey", "Yes", "No", "Cancel") != "Yes") + if(alert(usr, "[new_key]/([new_ckey]) has not been seen before, are you sure you want to create a [type] for them?", "Unknown ckey", "Yes", "No", "Cancel") != "Yes") qdel(query_find_ckey) return qdel(query_find_ckey) target_ckey = new_ckey + target_key = new_key if(QDELETED(usr)) return if(target_ckey) target_ckey = sanitizeSQL(target_ckey) + if(!target_key) + target_key = target_ckey if(!admin_ckey) admin_ckey = usr.ckey if(!admin_ckey) @@ -51,8 +55,8 @@ else return var/datum/DBQuery/query_create_message = SSdbcore.NewQuery("INSERT INTO [format_table_name("messages")] (type, targetckey, adminckey, text, timestamp, server, server_ip, server_port, round_id, secret) VALUES ('[type]', '[target_ckey]', '[admin_ckey]', '[text]', '[timestamp]', '[server]', INET_ATON(IF('[world.internet_address]' LIKE '', '0', '[world.internet_address]')), '[world.port]', '[GLOB.round_id]','[secret]')") - var/pm = "[key_name(usr)] has created a [type][(type == "note" || type == "message" || type == "watchlist entry") ? " for [target_ckey]" : ""]: [text]" - var/header = "[key_name_admin(usr)] has created a [type][(type == "note" || type == "message" || type == "watchlist entry") ? " for [target_ckey]" : ""]" + var/pm = "[key_name(usr)] has created a [type][(type == "note" || type == "message" || type == "watchlist entry") ? " for [target_key]" : ""]: [text]" + var/header = "[key_name_admin(usr)] has created a [type][(type == "note" || type == "message" || type == "watchlist entry") ? " for [target_key]" : ""]" if(!query_create_message.warn_execute()) qdel(query_create_message) return @@ -75,18 +79,18 @@ if(!message_id) return var/type - var/target_ckey + var/target_key var/text var/user_key_name = key_name(usr) var/user_name_admin = key_name_admin(usr) - var/datum/DBQuery/query_find_del_message = SSdbcore.NewQuery("SELECT type, targetckey, adminckey, text FROM [format_table_name("messages")] WHERE id = [message_id] AND deleted = 0") + var/datum/DBQuery/query_find_del_message = SSdbcore.NewQuery("SELECT type, (SELECT byond_key FROM [format_table_name("player")] WHERE ckey = targetckey), text FROM [format_table_name("messages")] WHERE id = [message_id] AND deleted = 0") if(!query_find_del_message.warn_execute()) qdel(query_find_del_message) return if(query_find_del_message.NextRow()) type = query_find_del_message.item[1] - target_ckey = query_find_del_message.item[2] - text = query_find_del_message.item[4] + target_key = query_find_del_message.item[2] + text = query_find_del_message.item[3] qdel(query_find_del_message) var/datum/DBQuery/query_del_message = SSdbcore.NewQuery("UPDATE [format_table_name("messages")] SET deleted = 1 WHERE id = [message_id]") if(!query_del_message.warn_execute()) @@ -94,14 +98,14 @@ return qdel(query_del_message) if(logged) - var/m1 = "[user_key_name] has deleted a [type][(type == "note" || type == "message" || type == "watchlist entry") ? " for" : " made by"] [target_ckey]: [text]" - var/m2 = "[user_name_admin] has deleted a [type][(type == "note" || type == "message" || type == "watchlist entry") ? " for" : " made by"] [target_ckey]:
    [text]" + var/m1 = "[user_key_name] has deleted a [type][(type == "note" || type == "message" || type == "watchlist entry") ? " for" : " made by"] [target_key]: [text]" + var/m2 = "[user_name_admin] has deleted a [type][(type == "note" || type == "message" || type == "watchlist entry") ? " for" : " made by"] [target_key]:
    [text]" log_admin_private(m1) message_admins(m2) if(browse) browse_messages("[type]") else - browse_messages(target_ckey = target_ckey, agegate = TRUE) + browse_messages(target_ckey = ckey(target_key), agegate = TRUE) /proc/edit_message(message_id, browse) if(!SSdbcore.Connect()) @@ -110,32 +114,36 @@ message_id = text2num(message_id) if(!message_id) return - var/datum/DBQuery/query_find_edit_message = SSdbcore.NewQuery("SELECT type, targetckey, adminckey, text FROM [format_table_name("messages")] WHERE id = [message_id] AND deleted = 0") + var/editor_ckey = sanitizeSQL(usr.ckey) + var/editor_key = sanitizeSQL(usr.key) + var/kn = key_name(usr) + var/kna = key_name_admin(usr) + var/datum/DBQuery/query_find_edit_message = SSdbcore.NewQuery("SELECT type, (SELECT byond_key FROM [format_table_name("player")] WHERE ckey = targetckey), (SELECT byond_key FROM [format_table_name("player")] WHERE ckey = adminckey), text FROM [format_table_name("messages")] WHERE id = [message_id] AND deleted = 0") if(!query_find_edit_message.warn_execute()) qdel(query_find_edit_message) return if(query_find_edit_message.NextRow()) var/type = query_find_edit_message.item[1] - var/target_ckey = query_find_edit_message.item[2] - var/admin_ckey = query_find_edit_message.item[3] + var/target_key = query_find_edit_message.item[2] + var/admin_key = query_find_edit_message.item[3] var/old_text = query_find_edit_message.item[4] - var/editor_ckey = sanitizeSQL(usr.ckey) var/new_text = input("Input new [type]", "New [type]", "[old_text]") as null|message if(!new_text) qdel(query_find_edit_message) return new_text = sanitizeSQL(new_text) - var/edit_text = sanitizeSQL("Edited by [editor_ckey] on [SQLtime()] from
    [old_text]
    to
    [new_text]
    ") + var/edit_text = sanitizeSQL("Edited by [editor_key] on [SQLtime()] from
    [old_text]
    to
    [new_text]
    ") var/datum/DBQuery/query_edit_message = SSdbcore.NewQuery("UPDATE [format_table_name("messages")] SET text = '[new_text]', lasteditor = '[editor_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE id = [message_id] AND deleted = 0") if(!query_edit_message.warn_execute()) - qdel(query_find_edit_message) + qdel(query_edit_message) return - log_admin_private("[key_name(usr)] has edited a [type] [(type == "note" || type == "message" || type == "watchlist entry") ? " for [target_ckey]" : ""] made by [admin_ckey] from [old_text] to [new_text]") - message_admins("[key_name_admin(usr)] has edited a [type] [(type == "note" || type == "message" || type == "watchlist entry") ? " for [target_ckey]" : ""] made by [admin_ckey] from
    [old_text]
    to
    [new_text]") + qdel(query_edit_message) + log_admin_private("[kn] has edited a [type] [(type == "note" || type == "message" || type == "watchlist entry") ? " for [target_key]" : ""] made by [admin_key] from [old_text] to [new_text]") + message_admins("[kna] has edited a [type] [(type == "note" || type == "message" || type == "watchlist entry") ? " for [target_key]" : ""] made by [admin_key] from
    [old_text]
    to
    [new_text]") if(browse) browse_messages("[type]") else - browse_messages(target_ckey = target_ckey, agegate = TRUE) + browse_messages(target_ckey = ckey(target_key), agegate = TRUE) qdel(query_find_edit_message) /proc/toggle_message_secrecy(message_id) @@ -145,29 +153,29 @@ message_id = text2num(message_id) if(!message_id) return - var/editor_ckey = usr.ckey + var/editor_ckey = sanitizeSQL(usr.ckey) + var/editor_key = sanitizeSQL(usr.key) var/kn = key_name(usr) var/kna = key_name_admin(usr) - var/datum/DBQuery/query_find_message_secret = SSdbcore.NewQuery("SELECT type, targetckey, adminckey, secret FROM [format_table_name("messages")] WHERE id = [message_id] AND deleted = 0") + var/datum/DBQuery/query_find_message_secret = SSdbcore.NewQuery("SELECT type, (SELECT byond_key FROM [format_table_name("player")] WHERE ckey = targetckey), (SELECT byond_key FROM [format_table_name("player")] WHERE ckey = adminckey), secret FROM [format_table_name("messages")] WHERE id = [message_id] AND deleted = 0") if(!query_find_message_secret.warn_execute()) qdel(query_find_message_secret) return if(query_find_message_secret.NextRow()) var/type = query_find_message_secret.item[1] - var/target_ckey = query_find_message_secret.item[2] - var/admin_ckey = query_find_message_secret.item[3] + var/target_key = query_find_message_secret.item[2] + var/admin_key = query_find_message_secret.item[3] var/secret = text2num(query_find_message_secret.item[4]) - editor_ckey = sanitizeSQL(editor_ckey) - var/edit_text = "Made [secret ? "not secret" : "secret"] by [editor_ckey] on [SQLtime()]
    " + var/edit_text = "Made [secret ? "not secret" : "secret"] by [editor_key] on [SQLtime()]
    " var/datum/DBQuery/query_message_secret = SSdbcore.NewQuery("UPDATE [format_table_name("messages")] SET secret = NOT secret, lasteditor = '[editor_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE id = [message_id]") if(!query_message_secret.warn_execute()) qdel(query_find_message_secret) qdel(query_message_secret) return qdel(query_message_secret) - log_admin_private("[kn] has toggled [target_ckey]'s [type] made by [admin_ckey] to [secret ? "not secret" : "secret"]") - message_admins("[kna] has toggled [target_ckey]'s [type] made by [admin_ckey] to [secret ? "not secret" : "secret"]") - browse_messages(target_ckey = target_ckey, agegate = TRUE) + log_admin_private("[kn] has toggled [target_key]'s [type] made by [admin_key] to [secret ? "not secret" : "secret"]") + message_admins("[kna] has toggled [target_key]'s [type] made by [admin_key] to [secret ? "not secret" : "secret"]") + browse_messages(target_ckey = ckey(target_key), agegate = TRUE) qdel(query_find_message_secret) /proc/browse_messages(type, target_ckey, index, linkless = FALSE, filter, agegate = FALSE) @@ -199,7 +207,7 @@ else output += "|\[Filter offline clients\]" output += ruler - var/datum/DBQuery/query_get_type_messages = SSdbcore.NewQuery("SELECT id, targetckey, adminckey, text, timestamp, server, lasteditor FROM [format_table_name("messages")] WHERE type = '[type]' AND deleted = 0") + var/datum/DBQuery/query_get_type_messages = SSdbcore.NewQuery("SELECT id, (SELECT byond_key FROM [format_table_name("player")] WHERE ckey = targetckey), targetckey, (SELECT byond_key FROM [format_table_name("player")] WHERE ckey = adminckey), text, timestamp, server, (SELECT byond_key FROM [format_table_name("player")] WHERE ckey = lasteditor) FROM [format_table_name("messages")] WHERE type = '[type]' AND deleted = 0") if(!query_get_type_messages.warn_execute()) qdel(query_get_type_messages) return @@ -207,27 +215,29 @@ if(QDELETED(usr)) return var/id = query_get_type_messages.item[1] - var/t_ckey = query_get_type_messages.item[2] + var/t_key = query_get_type_messages.item[2] + var/t_ckey = query_get_type_messages.item[3] if(type == "watchlist entry" && filter && !(t_ckey in GLOB.directory)) continue - var/admin_ckey = query_get_type_messages.item[3] - var/text = query_get_type_messages.item[4] - var/timestamp = query_get_type_messages.item[5] - var/server = query_get_type_messages.item[6] - var/editor_ckey = query_get_type_messages.item[7] + var/admin_key = query_get_type_messages.item[4] + var/text = query_get_type_messages.item[5] + var/timestamp = query_get_type_messages.item[6] + var/server = query_get_type_messages.item[7] + var/editor_key = query_get_type_messages.item[8] output += "" if(type == "watchlist entry") - output += "[t_ckey] | " - output += "[timestamp] | [server] | [admin_ckey]" + output += "[t_key] | " + output += "[timestamp] | [server] | [admin_key]" output += " \[Delete\]" output += " \[Edit\]" - if(editor_ckey) - output += " Last edit by [editor_ckey] (Click here to see edit log)" + if(editor_key) + output += " Last edit by [editor_key] (Click here to see edit log)" output += "
    [text]
    " qdel(query_get_type_messages) if(target_ckey) target_ckey = sanitizeSQL(target_ckey) - var/datum/DBQuery/query_get_messages = SSdbcore.NewQuery("SELECT type, secret, id, adminckey, text, timestamp, server, lasteditor, DATEDIFF(NOW(), timestamp) AS `age` FROM [format_table_name("messages")] WHERE type <> 'memo' AND targetckey = '[target_ckey]' AND deleted = 0 ORDER BY timestamp DESC") + var/target_key + var/datum/DBQuery/query_get_messages = SSdbcore.NewQuery("SELECT type, secret, id, (SELECT byond_key FROM [format_table_name("player")] WHERE ckey = adminckey), text, timestamp, server, (SELECT byond_key FROM [format_table_name("player")] WHERE ckey = lasteditor), DATEDIFF(NOW(), timestamp) AS `age`, (SELECT byond_key FROM [format_table_name("player")] WHERE ckey = targetckey) FROM [format_table_name("messages")] WHERE type <> 'memo' AND targetckey = '[target_ckey]' AND deleted = 0 ORDER BY timestamp DESC") if(!query_get_messages.warn_execute()) qdel(query_get_messages) return @@ -245,12 +255,13 @@ if(linkless && secret) continue var/id = query_get_messages.item[3] - var/admin_ckey = query_get_messages.item[4] + var/admin_key = query_get_messages.item[4] var/text = query_get_messages.item[5] var/timestamp = query_get_messages.item[6] var/server = query_get_messages.item[7] - var/editor_ckey = query_get_messages.item[8] + var/editor_key = query_get_messages.item[8] var/age = text2num(query_get_messages.item[9]) + target_key = query_get_messages.item[10] var/alphatext = "" var/nsd = CONFIG_GET(number/note_stale_days) var/nfd = CONFIG_GET(number/note_fresh_days) @@ -265,19 +276,19 @@ skipped = TRUE alphatext = "filter: alpha(opacity=[alpha]); opacity: [alpha/100];" - var/list/data = list("

    [timestamp] | [server] | [admin_ckey]") + var/list/data = list("

    [timestamp] | [server] | [admin_key]") if(!linkless) data += " \[Delete\]" if(type == "note") data += " [secret ? "\[Secret\]" : "\[Not secret\]"]" if(type == "message sent") data += " Message has been sent" - if(editor_ckey) + if(editor_key) data += "|" else data += " \[Edit\]" - if(editor_ckey) - data += " Last edit by [editor_ckey] (Click here to see edit log)" + if(editor_key) + data += " Last edit by [editor_key] (Click here to see edit log)" data += "
    [text]


    " switch(type) if("message") @@ -289,11 +300,11 @@ if("note") notedata += data qdel(query_get_messages) - output += "

    [target_ckey]

    " + output += "

    [target_key]

    " if(!linkless) - output += "\[Add note\]" - output += " \[Add message\]" - output += " \[Add to watchlist\]" + output += "\[Add note\]" + output += " \[Add message\]" + output += " \[Add to watchlist\]" output += " \[Refresh page\]
    " else output += " \[Refresh page\]
    " @@ -317,7 +328,6 @@ else output += "
    \[Hide Old\]
    " if(index) - var/index_ckey var/search output += "
    \[Add message\]\[Add watchlist entry\]\[Add note\]
    " output += ruler @@ -330,15 +340,16 @@ search = "^\[^\[:alpha:\]\]" else search = "^[index]" - var/datum/DBQuery/query_list_messages = SSdbcore.NewQuery("SELECT DISTINCT targetckey FROM [format_table_name("messages")] WHERE type <> 'memo' AND targetckey REGEXP '[search]' AND deleted = 0 ORDER BY targetckey") + var/datum/DBQuery/query_list_messages = SSdbcore.NewQuery("SELECT DISTINCT targetckey, (SELECT byond_key FROM [format_table_name("player")] WHERE ckey = targetckey) FROM [format_table_name("messages")] WHERE type <> 'memo' AND targetckey REGEXP '[search]' AND deleted = 0 ORDER BY targetckey") if(!query_list_messages.warn_execute()) qdel(query_list_messages) return while(query_list_messages.NextRow()) if(QDELETED(usr)) return - index_ckey = query_list_messages.item[1] - output += "[index_ckey]
    " + var/index_ckey = query_list_messages.item[1] + var/index_key = query_list_messages.item[2] + output += "[index_key]
    " qdel(query_list_messages) else if(!type && !target_ckey && !index) output += "
    \[Add message\]\[Add watchlist entry\]\[Add note\]
    " @@ -354,7 +365,7 @@ var/output if(target_ckey) target_ckey = sanitizeSQL(target_ckey) - var/query = "SELECT id, adminckey, text, timestamp, lasteditor FROM [format_table_name("messages")] WHERE type = '[type]' AND deleted = 0" + var/query = "SELECT id, (SELECT byond_key FROM [format_table_name("player")] WHERE ckey = adminckey), text, timestamp, (SELECT byond_key FROM [format_table_name("player")] WHERE ckey = lasteditor) FROM [format_table_name("messages")] WHERE type = '[type]' AND deleted = 0" if(type == "message" || type == "watchlist entry") query += " AND targetckey = '[target_ckey]'" var/datum/DBQuery/query_get_message_output = SSdbcore.NewQuery(query) @@ -363,13 +374,13 @@ return while(query_get_message_output.NextRow()) var/message_id = query_get_message_output.item[1] - var/admin_ckey = query_get_message_output.item[2] + var/admin_key = query_get_message_output.item[2] var/text = query_get_message_output.item[3] var/timestamp = query_get_message_output.item[4] - var/editor_ckey = query_get_message_output.item[5] + var/editor_key = query_get_message_output.item[5] switch(type) if("message") - output += "Admin message left by [admin_ckey] on [timestamp]" + output += "Admin message left by [admin_key] on [timestamp]" output += "
    [text]
    " var/datum/DBQuery/query_message_read = SSdbcore.NewQuery("UPDATE [format_table_name("messages")] SET type = 'message sent' WHERE id = [message_id]") if(!query_message_read.warn_execute()) @@ -381,9 +392,9 @@ message_admins("Notice: [key_name_admin(target_ckey)] has been on the watchlist since [timestamp] and has just connected - Reason: [text]") send2irc_adminless_only("Watchlist", "[key_name(target_ckey)] is on the watchlist and has just connected - Reason: [text]") if("memo") - output += "Memo by [admin_ckey] on [timestamp]" - if(editor_ckey) - output += "
    Last edit by [editor_ckey] (Click here to see edit log)" + output += "Memo by [admin_key] on [timestamp]" + if(editor_key) + output += "
    Last edit by [editor_key] (Click here to see edit log)" output += "
    [text]

    " qdel(query_get_message_output) return output diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index ff830a2d70..378cf7a701 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -206,15 +206,14 @@ if(!check_rights(R_BAN)) return var/bantype = text2num(href_list["dbbanaddtype"]) - var/banckey = href_list["dbbanaddckey"] + var/bankey = href_list["dbbanaddkey"] + var/banckey = ckey(bankey) var/banip = href_list["dbbanaddip"] var/bancid = href_list["dbbanaddcid"] var/banduration = text2num(href_list["dbbaddduration"]) var/banjob = href_list["dbbanaddjob"] var/banreason = href_list["dbbanreason"] - banckey = ckey(banckey) - switch(bantype) if(BANTYPE_PERMA) if(!banckey || !banreason) @@ -264,12 +263,12 @@ if(bancid) banreason = "[banreason] (CUSTOM CID)" else - message_admins("Ban process: A mob matching [playermob.ckey] was found at location [playermob.x], [playermob.y], [playermob.z]. Custom ip and computer id fields replaced with the ip and computer id from the located mob.") + message_admins("Ban process: A mob matching [playermob.key] was found at location [playermob.x], [playermob.y], [playermob.z]. Custom ip and computer id fields replaced with the ip and computer id from the located mob.") - if(!DB_ban_record(bantype, playermob, banduration, banreason, banjob, banckey, banip, bancid )) + if(!DB_ban_record(bantype, playermob, banduration, banreason, banjob, bankey, banip, bancid )) to_chat(usr, "Failed to apply ban.") return - create_message("note", banckey, null, banreason, null, null, 0, 0) + create_message("note", bankey, null, banreason, null, null, 0, 0) else if(href_list["editrightsbrowser"]) edit_admin_permissions(0) @@ -279,9 +278,9 @@ if(href_list["editrightsbrowsermanage"]) if(href_list["editrightschange"]) - change_admin_rank(href_list["editrightschange"], TRUE) + change_admin_rank(ckey(href_list["editrightschange"]), href_list["editrightschange"], TRUE) else if(href_list["editrightsremove"]) - remove_admin(href_list["editrightsremove"], TRUE) + remove_admin(ckey(href_list["editrightsremove"]), href_list["editrightsremove"], TRUE) else if(href_list["editrightsremoverank"]) remove_rank(href_list["editrightsremoverank"]) edit_admin_permissions(2) @@ -339,7 +338,7 @@ else if(href_list["toggle_continuous"]) if(!check_rights(R_ADMIN)) return - var/list/continuous = CONFIG_GET(keyed_flag_list/continuous) + var/list/continuous = CONFIG_GET(keyed_list/continuous) if(!continuous[SSticker.mode.config_tag]) continuous[SSticker.mode.config_tag] = TRUE else @@ -352,7 +351,7 @@ if(!check_rights(R_ADMIN)) return - var/list/midround_antag = CONFIG_GET(keyed_flag_list/midround_antag) + var/list/midround_antag = CONFIG_GET(keyed_list/midround_antag) if(!midround_antag[SSticker.mode.config_tag]) midround_antag[SSticker.mode.config_tag] = TRUE else @@ -591,9 +590,9 @@ if(M.client) jobban_buildcache(M.client) message_admins("[key_name_admin(usr)] removed [key_name_admin(M)]'s appearance ban.") - to_chat(M, "[usr.client.ckey] has removed your appearance ban.") + to_chat(M, "[usr.client.key] has removed your appearance ban.") - else switch(alert("Appearance ban [M.ckey]?",,"Yes","No", "Cancel")) + else switch(alert("Appearance ban [M.key]?",,"Yes","No", "Cancel")) if("Yes") var/reason = input(usr,"Please State Reason.","Reason") as message|null if(!reason) @@ -605,9 +604,9 @@ jobban_buildcache(M.client) ban_unban_log_save("[key_name(usr)] appearance banned [key_name(M)]. reason: [reason]") log_admin_private("[key_name(usr)] appearance banned [key_name(M)]. \nReason: [reason]") - create_message("note", M.ckey, null, "Appearance banned - [reason]", null, null, 0, 0) + create_message("note", M.key, null, "Appearance banned - [reason]", null, null, 0, 0) message_admins("[key_name_admin(usr)] appearance banned [key_name_admin(M)].") - to_chat(M, "You have been appearance banned by [usr.client.ckey].") + to_chat(M, "You have been appearance banned by [usr.client.key].") to_chat(M, "The reason is: [reason]") to_chat(M, "Appearance ban can be lifted only upon request.") var/bran = CONFIG_GET(string/banappeals) @@ -968,13 +967,13 @@ //Banning comes first if(notbannedlist.len) //at least 1 unbanned job exists in joblist so we have stuff to ban. - switch(alert("Temporary Ban for [M.ckey]?",,"Yes","No", "Cancel")) + switch(alert("Temporary Ban for [M.key]?",,"Yes","No", "Cancel")) if("Yes") var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null if(mins <= 0) to_chat(usr, "[mins] is not a valid duration.") return - var/reason = input(usr,"Please State Reason For Banning [M.ckey].","Reason") as message|null + var/reason = input(usr,"Please State Reason For Banning [M.key].","Reason") as message|null if(!reason) return @@ -991,15 +990,15 @@ msg = job else msg += ", [job]" - create_message("note", M.ckey, null, "Banned from [msg] - [reason]", null, null, 0, 0) + create_message("note", M.key, null, "Banned from [msg] - [reason]", null, null, 0, 0) message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes.") - to_chat(M, "You have been [(msg == ("ooc" || "appearance")) ? "banned" : "jobbanned"] by [usr.client.ckey] from: [msg].") + to_chat(M, "You have been [(msg == ("ooc" || "appearance")) ? "banned" : "jobbanned"] by [usr.client.key] from: [msg].") to_chat(M, "The reason is: [reason]") to_chat(M, "This jobban will be lifted in [mins] minutes.") href_list["jobban2"] = 1 // lets it fall through and refresh return 1 if("No") - var/reason = input(usr,"Please State Reason For Banning [M.ckey].","Reason") as message|null + var/reason = input(usr,"Please State Reason For Banning [M.key].","Reason") as message|null if(reason) var/msg for(var/job in notbannedlist) @@ -1014,9 +1013,9 @@ msg = job else msg += ", [job]" - create_message("note", M.ckey, null, "Banned from [msg] - [reason]", null, null, 0, 0) + create_message("note", M.key, null, "Banned from [msg] - [reason]", null, null, 0, 0) message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg].") - to_chat(M, "You have been [(msg == ("ooc" || "appearance")) ? "banned" : "jobbanned"] by [usr.client.ckey] from: [msg].") + to_chat(M, "You have been [(msg == ("ooc" || "appearance")) ? "banned" : "jobbanned"] by [usr.client.key] from: [msg].") to_chat(M, "The reason is: [reason]") to_chat(M, "Jobban can be lifted only upon request.") href_list["jobban2"] = 1 // lets it fall through and refresh @@ -1047,7 +1046,7 @@ continue if(msg) message_admins("[key_name_admin(usr)] unbanned [key_name_admin(M)] from [msg].") - to_chat(M, "You have been un-jobbanned by [usr.client.ckey] from [msg].") + to_chat(M, "You have been un-jobbanned by [usr.client.key] from [msg].") href_list["jobban2"] = 1 // lets it fall through and refresh return 1 return 0 //we didn't do anything! @@ -1068,7 +1067,7 @@ if(!M.client) to_chat(usr, "Error: [M] no longer has a client!") return - to_chat(M, "You have been kicked from the server by [usr.client.holder.fakekey ? "an Administrator" : "[usr.client.ckey]"].") + to_chat(M, "You have been kicked from the server by [usr.client.holder.fakekey ? "an Administrator" : "[usr.client.key]"].") log_admin("[key_name(usr)] kicked [key_name(M)].") message_admins("[key_name_admin(usr)] kicked [key_name_admin(M)].") qdel(M.client) @@ -1076,20 +1075,20 @@ else if(href_list["addmessage"]) if(!check_rights(R_ADMIN)) return - var/target_ckey = href_list["addmessage"] - create_message("message", target_ckey, secret = 0) + var/target_key = href_list["addmessage"] + create_message("message", target_key, secret = 0) else if(href_list["addnote"]) if(!check_rights(R_ADMIN)) return - var/target_ckey = href_list["addnote"] - create_message("note", target_ckey) + var/target_key = href_list["addnote"] + create_message("note", target_key) else if(href_list["addwatch"]) if(!check_rights(R_ADMIN)) return - var/target_ckey = href_list["addwatch"] - create_message("watchlist entry", target_ckey, secret = 1) + var/target_key = href_list["addwatch"] + create_message("watchlist entry", target_key, secret = 1) else if(href_list["addmemo"]) if(!check_rights(R_ADMIN)) @@ -1217,13 +1216,13 @@ if(M.client && M.client.holder) return //admins cannot be banned. Even if they could, the ban doesn't affect them anyway - switch(alert("Temporary Ban for [M.ckey]?",,"Yes","No", "Cancel")) + switch(alert("Temporary Ban for [M.key]?",,"Yes","No", "Cancel")) if("Yes") var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null if(mins <= 0) to_chat(usr, "[mins] is not a valid duration.") return - var/reason = input(usr,"Please State Reason For Banning [M.ckey].","Reason") as message|null + var/reason = input(usr,"Please State Reason For Banning [M.key].","Reason") as message|null if(!reason) return if(!DB_ban_record(BANTYPE_TEMP, M, mins, reason)) @@ -1231,14 +1230,14 @@ return AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins) ban_unban_log_save("[key_name(usr)] has banned [key_name(M)]. - Reason: [reason] - This will be removed in [mins] minutes.") - to_chat(M, "You have been banned by [usr.client.ckey].\nReason: [reason]") + to_chat(M, "You have been banned by [usr.client.key].\nReason: [reason]") to_chat(M, "This is a temporary ban, it will be removed in [mins] minutes. The round ID is [GLOB.round_id].") var/bran = CONFIG_GET(string/banappeals) if(bran) to_chat(M, "To try to resolve this matter head to [bran]") else to_chat(M, "No ban appeals URL has been set.") - log_admin_private("[key_name(usr)] has banned [M.ckey].\nReason: [key_name(M)]\nThis will be removed in [mins] minutes.") + log_admin_private("[key_name(usr)] has banned [key_name(M)].\nReason: [key_name(M)]\nThis will be removed in [mins] minutes.") var/msg = "[key_name_admin(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis will be removed in [mins] minutes." message_admins(msg) var/datum/admin_help/AH = M.client ? M.client.current_ticket : null @@ -1246,7 +1245,7 @@ AH.Resolve() qdel(M.client) if("No") - var/reason = input(usr,"Please State Reason For Banning [M.ckey].","Reason") as message|null + var/reason = input(usr,"Please State Reason For Banning [M.key].","Reason") as message|null if(!reason) return switch(alert(usr,"IP ban?",,"Yes","No","Cancel")) @@ -1256,7 +1255,7 @@ AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0, M.lastKnownIP) if("No") AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0) - to_chat(M, "You have been banned by [usr.client.ckey].\nReason: [reason]") + to_chat(M, "You have been banned by [usr.client.key].\nReason: [reason]") to_chat(M, "This is a permanent ban. The round ID is [GLOB.round_id].") var/bran = CONFIG_GET(string/banappeals) if(bran) @@ -2349,7 +2348,7 @@ if(alert("Are you sure you want to kick all [afkonly ? "AFK" : ""] clients from the lobby??","Message","Yes","Cancel") != "Yes") to_chat(usr, "Kick clients from lobby aborted") return - var/list/listkicked = kick_clients_in_lobby("You were kicked from the lobby by [usr.client.holder.fakekey ? "an Administrator" : "[usr.client.ckey]"].", afkonly) + var/list/listkicked = kick_clients_in_lobby("You were kicked from the lobby by [usr.client.holder.fakekey ? "an Administrator" : "[usr.client.key]"].", afkonly) var/strkicked = "" for(var/name in listkicked) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index 54af4b5167..603e4daf2d 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -21,12 +21,13 @@ /client/proc/SDQL2_query(query_text as message) set category = "Debug" if(!check_rights(R_DEBUG)) //Shouldn't happen... but just to be safe. - message_admins("ERROR: Non-admin [key_name(usr, usr.client)] attempted to execute a SDQL query!") - log_admin("Non-admin [usr.ckey]([usr]) attempted to execute a SDQL query!") + message_admins("ERROR: Non-admin [key_name(usr)] attempted to execute a SDQL query!") + log_admin("Non-admin [key_name(usr)] attempted to execute a SDQL query!") return FALSE - var/list/results = world.SDQL2_query(query_text, key_name_admin(usr), "[usr.ckey]([usr])") + var/list/results = world.SDQL2_query(query_text, key_name_admin(usr), "[key_name(usr)]") for(var/I in 1 to 3) to_chat(usr, results[I]) + SSblackbox.record_feedback("nested tally", "SDQL query", 1, list(ckey, query_text)) /world/proc/SDQL2_query(query_text, log_entry1, log_entry2) var/query_log = "executed SDQL query: \"[query_text]\"." @@ -195,9 +196,10 @@ /proc/SDQL_testout(list/query_tree, indent = 0) + var/static/whitespace = "    " var/spaces = "" for(var/s = 0, s < indent, s++) - spaces += " " + spaces += whitespace for(var/item in query_tree) if(istype(item, /list)) @@ -211,12 +213,12 @@ if(!isnum(item) && query_tree[item]) if(istype(query_tree[item], /list)) - to_chat(usr, "[spaces] (") + to_chat(usr, "[spaces][whitespace](") SDQL_testout(query_tree[item], indent + 2) - to_chat(usr, "[spaces] )") + to_chat(usr, "[spaces][whitespace])") else - to_chat(usr, "[spaces] [query_tree[item]]") + to_chat(usr, "[spaces][whitespace][query_tree[item]]") diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm b/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm index 61945f1dde..3da4767362 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm @@ -331,7 +331,7 @@ //string: ''' ''' | '"' '"' /datum/SDQL_parser/proc/string(i, list/node) if(copytext(token(i), 1, 2) in list("'", "\"")) - node += copytext(token(i),2,-1) + node += token(i) else parse_error("Expected string but found '[token(i)]'") return i + 1 diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index d49cb921f6..572e685e1c 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -588,7 +588,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) message["key"] = comms_key message += type - var/list/servers = CONFIG_GET(keyed_string_list/cross_server) + var/list/servers = CONFIG_GET(keyed_list/cross_server) for(var/I in servers) world.Export("[servers[I]]?[list2params(message)]") @@ -667,7 +667,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) var/is_antag = 0 if(found.mind && found.mind.special_role) is_antag = 1 - founds += "Name: [found.name]([found.real_name]) Ckey: [found.ckey] [is_antag ? "(Antag)" : null] " + founds += "Name: [found.name]([found.real_name]) Key: [found.key] Ckey: [found.ckey] [is_antag ? "(Antag)" : null] " msg += "[original_word](?|F) " continue msg += "[original_word] " diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm index bf39288511..cc8c630bd6 100644 --- a/code/modules/admin/verbs/adminsay.dm +++ b/code/modules/admin/verbs/adminsay.dm @@ -11,12 +11,8 @@ log_talk(mob,"[key_name(src)] : [msg]",LOGASAY) msg = keywords_lookup(msg) - if(check_rights(R_ADMIN,0)) - msg = "ADMIN: [key_name(usr, 1)] [ADMIN_FLW(mob)]: [msg]" - to_chat(GLOB.admins, msg) - else - msg = "ADMIN: [key_name(usr, 1)] [ADMIN_FLW(mob)]: [msg]" - to_chat(GLOB.admins, msg) + msg = "ADMIN: [key_name(usr, 1)] [ADMIN_FLW(mob)]: [msg]" + to_chat(GLOB.admins, msg) SSblackbox.record_feedback("tally", "admin_verb", 1, "Asay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/deadsay.dm b/code/modules/admin/verbs/deadsay.dm index a89a30b9ba..e89a067cdd 100644 --- a/code/modules/admin/verbs/deadsay.dm +++ b/code/modules/admin/verbs/deadsay.dm @@ -1,6 +1,6 @@ /client/proc/dsay(msg as text) set category = "Special Verbs" - set name = "Dsay" //Gave this shit a shorter name so you only have to time out "dsay" rather than "dead say" to use it --NeoFite + set name = "Dsay" set hidden = 1 if(!src.holder) to_chat(src, "Only administrators may use this command.") @@ -21,7 +21,7 @@ return var/static/nicknames = world.file2list("[global.config.directory]/admin_nicknames.txt") - var/rendered = "DEAD: [uppertext(holder.rank)]([src.holder.fakekey ? pick(nicknames) : src.key]) says, \"[msg]\"" + var/rendered = "DEAD: [uppertext(holder.rank)]([src.holder.fakekey ? pick(nicknames) : src.key]) says, \"[emoji_parse(msg)]\"" for (var/mob/M in GLOB.player_list) if(isnewplayer(M)) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index d34e1ebd42..67b33afcc6 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -494,7 +494,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) set desc = "Direct intervention" if(M.ckey) - if(alert("This mob is being controlled by [M.ckey]. Are you sure you wish to assume control of it? [M.ckey] will be made a ghost.",,"Yes","No") != "Yes") + if(alert("This mob is being controlled by [M.key]. Are you sure you wish to assume control of it? [M.key] will be made a ghost.",,"Yes","No") != "Yes") return else var/mob/dead/observer/ghost = new/mob/dead/observer(M,1) @@ -959,6 +959,50 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) to_chat(usr, "[template.name]") to_chat(usr, "[template.description]") +/client/proc/place_ruin() + set category = "Debug" + set name = "Spawn Ruin" + set desc = "Attempt to randomly place a specific ruin." + if (!holder) + return + + var/list/exists = list() + for(var/landmark in GLOB.ruin_landmarks) + var/obj/effect/landmark/ruin/L = landmark + exists[L.ruin_template] = landmark + + var/list/names = list() + names += "---- Space Ruins ----" + for(var/name in SSmapping.space_ruins_templates) + names[name] = list(SSmapping.space_ruins_templates[name], ZTRAIT_SPACE_RUINS, /area/space) + names += "---- Lava Ruins ----" + for(var/name in SSmapping.lava_ruins_templates) + names[name] = list(SSmapping.lava_ruins_templates[name], ZTRAIT_LAVA_RUINS, /area/lavaland/surface/outdoors/unexplored) + + var/ruinname = input("Select ruin", "Spawn Ruin") as null|anything in names + var/data = names[ruinname] + if (!data) + return + var/datum/map_template/ruin/template = data[1] + if (exists[template]) + var/response = alert("There is already a [template] in existence.", "Spawn Ruin", "Jump", "Place Another", "Cancel") + if (response == "Jump") + usr.forceMove(get_turf(exists[template])) + return + else if (response == "Cancel") + return + + var/len = GLOB.ruin_landmarks.len + seedRuins(SSmapping.levels_by_trait(data[2]), max(1, template.cost), data[3], list(ruinname = template)) + if (GLOB.ruin_landmarks.len > len) + var/obj/effect/landmark/ruin/landmark = GLOB.ruin_landmarks[GLOB.ruin_landmarks.len] + log_admin("[key_name(src)] randomly spawned ruin [ruinname] at [COORD(landmark)].") + usr.forceMove(get_turf(landmark)) + to_chat(src, "[template.name]") + to_chat(src, "[template.description]") + else + to_chat(src, "Failed to place [template.name].") + /client/proc/clear_dynamic_transit() set category = "Debug" set name = "Clear Dynamic Turf Reservations" @@ -1047,3 +1091,12 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) return sort = sortlist[sort] profile_show(src, sort) + +/client/proc/reload_configuration() + set category = "Debug" + set name = "Reload Configuration" + set desc = "Force config reload to world default" + if(!check_rights(R_DEBUG)) + return + if(alert(usr, "Are you absolutely sure you want to reload the configuration from the default path on the disk, wiping any in-round modificatoins?", "Really reset?", "No", "Yes") == "Yes") + config.admin_reload() diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index 800a94c4ba..8559a3235e 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -48,6 +48,7 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( /client/proc/show_line_profiling, /client/proc/create_mapping_job_icons, /client/proc/debug_z_levels, + /client/proc/place_ruin )) /obj/effect/debugging/mapfix_marker @@ -264,9 +265,9 @@ GLOBAL_VAR_INIT(say_disabled, FALSE) GLOB.say_disabled = !GLOB.say_disabled if(GLOB.say_disabled) - message_admins("[src.ckey] used 'Disable all communication verbs', killing all communication methods.") + message_admins("[key] used 'Disable all communication verbs', killing all communication methods.") else - message_admins("[src.ckey] used 'Disable all communication verbs', restoring all communication methods.") + message_admins("[key] used 'Disable all communication verbs', restoring all communication methods.") //This generates the icon states for job starting location landmarks. /client/proc/create_mapping_job_icons() diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index e690d0a0ad..1873232d21 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -38,16 +38,17 @@ cross.icon_state = "holylight" font_color = "blue" prayer_type = "SPIRITUAL PRAYER" - + + var/msg_tmp = msg msg = "[icon2html(cross, GLOB.admins)][prayer_type][deity ? " (to [deity])" : ""]: [ADMIN_FULLMONTY(src)] [ADMIN_SC(src)]: [msg]" - + for(var/client/C in GLOB.admins) if(C.prefs.chat_toggles & CHAT_PRAYER) to_chat(C, msg) if(C.prefs.toggles & SOUND_PRAYERS) if(usr.job == "Chaplain") SEND_SOUND(C, sound('sound/effects/pray.ogg')) - to_chat(usr, "Your prayers have been received by the gods.") + to_chat(usr, "You pray to the gods: \"[msg_tmp]\"") SSblackbox.record_feedback("tally", "admin_verb", 1, "Prayer") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //log_admin("HELP: [key_name(src)]: [msg]") diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 5d6e54d3c6..5c04a77285 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1201,82 +1201,6 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits log_admin("[key_name(usr)] sent \"[input]\" as the Tip of the Round.") SSblackbox.record_feedback("tally", "admin_verb", 1, "Show Tip") -/proc/mass_purrbation() - for(var/M in GLOB.mob_list) - if(ishumanbasic(M)) - purrbation_apply(M) - CHECK_TICK - -/proc/mass_remove_purrbation() - for(var/M in GLOB.mob_list) - if(ishumanbasic(M)) - purrbation_remove(M) - CHECK_TICK - -/proc/purrbation_toggle(mob/living/carbon/human/H, silent = FALSE) - if(!ishumanbasic(H)) - return - if(!iscatperson(H)) - purrbation_apply(H, silent) - . = TRUE - else - purrbation_remove(H, silent) - . = FALSE - -/proc/purrbation_apply(mob/living/carbon/human/H, silent = FALSE) - if(!ishuman(H)) - return - if(iscatperson(H)) - return - - var/obj/item/organ/ears/cat/ears = new - var/obj/item/organ/tail/cat/tail = new - ears.Insert(H, drop_if_replaced=FALSE) - tail.Insert(H, drop_if_replaced=FALSE) - - if(!silent) - to_chat(H, "Something is nya~t right.") - playsound(get_turf(H), 'sound/effects/meow1.ogg', 50, 1, -1) - -/proc/purrbation_remove(mob/living/carbon/human/H, silent = FALSE) - if(!ishuman(H)) - return - if(!iscatperson(H)) - return - - var/obj/item/organ/ears/cat/ears = H.getorgan(/obj/item/organ/ears/cat) - var/obj/item/organ/tail/cat/tail = H.getorgan(/obj/item/organ/tail/cat) - - if(ears) - var/obj/item/organ/ears/NE - if(H.dna.species && H.dna.species.mutantears) - // Roundstart cat ears override H.dna.species.mutantears, reset it here. - H.dna.species.mutantears = initial(H.dna.species.mutantears) - if(H.dna.species.mutantears) - NE = new H.dna.species.mutantears() - - if(!NE) - // Go with default ears - NE = new /obj/item/organ/ears() - - NE.Insert(H, drop_if_replaced = FALSE) - - if(tail) - var/obj/item/organ/tail/NT - if(H.dna.species && H.dna.species.mutanttail) - // Roundstart cat tail overrides H.dna.species.mutanttail, reset it here. - H.dna.species.mutanttail = initial(H.dna.species.mutanttail) - if(H.dna.species.mutanttail) - NT = new H.dna.species.mutanttail() - - if(NT) - NT.Insert(H, drop_if_replaced = FALSE) - else - tail.Remove(H) - - if(!silent) - to_chat(H, "You are no longer a cat.") - /client/proc/modify_goals() set category = "Debug" set name = "Modify goals" @@ -1313,7 +1237,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits if(!check_rights(R_ADMIN)) return - var/list/punishment_list = list(ADMIN_PUNISHMENT_LIGHTNING, ADMIN_PUNISHMENT_BRAINDAMAGE, ADMIN_PUNISHMENT_GIB, ADMIN_PUNISHMENT_BSA, ADMIN_PUNISHMENT_FIREBALL, ADMIN_PUNISHMENT_ROD, ADMIN_PUNISHMENT_SUPPLYPOD) + var/list/punishment_list = list(ADMIN_PUNISHMENT_LIGHTNING, ADMIN_PUNISHMENT_BRAINDAMAGE, ADMIN_PUNISHMENT_GIB, ADMIN_PUNISHMENT_BSA, ADMIN_PUNISHMENT_FIREBALL, ADMIN_PUNISHMENT_ROD, ADMIN_PUNISHMENT_SUPPLYPOD, ADMIN_PUNISHMENT_MAZING) var/punishment = input("Choose a punishment", "DIVINE SMITING") as null|anything in punishment_list @@ -1359,6 +1283,10 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits if(iscarbon(target)) target.Stun(10)//takes 0.53 seconds for CentCom pod to land new /obj/effect/DPtarget(get_turf(target), delivery, POD_CENTCOM) + if(ADMIN_PUNISHMENT_MAZING) + if(!puzzle_imprison(target)) + to_chat(usr,"Imprisonment failed!") + return var/msg = "[key_name_admin(usr)] punished [key_name_admin(target)] with [punishment]." message_admins(msg) diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 50281d54b4..aa91af1dd8 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -14,7 +14,8 @@ GLOBAL_LIST_EMPTY(antagonists) var/list/objectives = list() var/antag_memory = ""//These will be removed with antag datum var/antag_moodlet //typepath of moodlet that the mob will gain with their status - + var/can_hijack = HIJACK_NEUTRAL //If these antags are alone on shuttle hijack happens. + //Antag panel properties var/show_in_antagpanel = TRUE //This will hide adding this antag type in antag panel, use only for internal subtypes that shouldn't be added directly but still show if possessed by mind var/antagpanel_category = "Uncategorized" //Antagpanel will display these together, REQUIRED diff --git a/code/modules/antagonists/abductor/machinery/experiment.dm b/code/modules/antagonists/abductor/machinery/experiment.dm index 5614fc9105..10581e7bbb 100644 --- a/code/modules/antagonists/abductor/machinery/experiment.dm +++ b/code/modules/antagonists/abductor/machinery/experiment.dm @@ -99,8 +99,9 @@ dat += "

    Experiment

    " if(occupant) var/obj/item/photo/P = new - P.photocreate(null, icon(dissection_icon(occupant), dir = SOUTH)) - user << browse_rsc(P.img, "dissection_img") + P.picture = new + P.picture.picture_image = icon(dissection_icon(occupant), dir = SOUTH) + user << browse_rsc(P.picture.picture_image, "dissection_img") dat += "" mutant_category = 0 - if(CONFIG_GET(flag/join_with_mutant_humans)) + if("tail_human" in pref_species.default_features) + if(!mutant_category) + dat += APPEARANCE_CATEGORY_COLUMN - if("tail_human" in pref_species.default_features) - if(!mutant_category) - dat += APPEARANCE_CATEGORY_COLUMN + dat += "

    Tail

    " - dat += "

    Tail

    " + dat += "[features["tail_human"]]
    " - dat += "[features["tail_human"]]
    " + mutant_category++ + if(mutant_category >= MAX_MUTANT_ROWS) + dat += "" + mutant_category = 0 - mutant_category++ - if(mutant_category >= MAX_MUTANT_ROWS) - dat += "" - mutant_category = 0 + if("ears" in pref_species.default_features) + if(!mutant_category) + dat += APPEARANCE_CATEGORY_COLUMN - if("ears" in pref_species.default_features) - if(!mutant_category) - dat += APPEARANCE_CATEGORY_COLUMN + dat += "

    Ears

    " - dat += "

    Ears

    " + dat += "[features["ears"]]
    " - dat += "[features["ears"]]
    " + mutant_category++ + if(mutant_category >= MAX_MUTANT_ROWS) + dat += "" + mutant_category = 0 - mutant_category++ - if(mutant_category >= MAX_MUTANT_ROWS) - dat += "" - mutant_category = 0 + if(CONFIG_GET(flag/join_with_mutant_humans)) if("wings" in pref_species.default_features && GLOB.r_wings_list.len >1) if(!mutant_category) @@ -937,7 +937,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(href_list["jobbancheck"]) var/job = sanitizeSQL(href_list["jobbancheck"]) var/sql_ckey = sanitizeSQL(user.ckey) - var/datum/DBQuery/query_get_jobban = SSdbcore.NewQuery("SELECT reason, bantime, duration, expiration_time, a_ckey FROM [format_table_name("ban")] WHERE ckey = '[sql_ckey]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned) AND job = '[job]'") + var/datum/DBQuery/query_get_jobban = SSdbcore.NewQuery("SELECT reason, bantime, duration, expiration_time, (SELECT byond_key FROM [format_table_name("player")] WHERE [format_table_name("player")].ckey = [format_table_name("ban")].a_ckey) FROM [format_table_name("ban")] WHERE ckey = '[sql_ckey]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned) AND job = '[job]'") if(!query_get_jobban.warn_execute()) qdel(query_get_jobban) return @@ -946,9 +946,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/bantime = query_get_jobban.item[2] var/duration = query_get_jobban.item[3] var/expiration_time = query_get_jobban.item[4] - var/a_ckey = query_get_jobban.item[5] + var/admin_key = query_get_jobban.item[5] var/text - text = "You, or another user of this computer, ([user.ckey]) is banned from playing [job]. The ban reason is:
    [reason]
    This ban was applied by [a_ckey] on [bantime]" + text = "You, or another user of this computer, ([user.key]) is banned from playing [job]. The ban reason is:
    [reason]
    This ban was applied by [admin_key] on [bantime]" if(text2num(duration) > 0) text += ". The ban is for [duration] minutes and expires on [expiration_time] (server time)" text += ".
    " @@ -1467,20 +1467,21 @@ GLOBAL_LIST_EMPTY(preferences_datums) ShowChoices(user) return 1 -/datum/preferences/proc/copy_to(mob/living/carbon/human/character, icon_updates = 1) +/datum/preferences/proc/copy_to(mob/living/carbon/human/character, icon_updates = 1, roundstart_checks = TRUE) if(be_random_name) real_name = pref_species.random_name(gender) if(be_random_body) random_character(gender) - if(CONFIG_GET(flag/humans_need_surnames) && (pref_species.id == "human")) - var/firstspace = findtext(real_name, " ") - var/name_length = length(real_name) - if(!firstspace) //we need a surname - real_name += " [pick(GLOB.last_names)]" - else if(firstspace == name_length) - real_name += "[pick(GLOB.last_names)]" + if(roundstart_checks) + if(CONFIG_GET(flag/humans_need_surnames) && (pref_species.id == "human")) + var/firstspace = findtext(real_name, " ") + var/name_length = length(real_name) + if(!firstspace) //we need a surname + real_name += " [pick(GLOB.last_names)]" + else if(firstspace == name_length) + real_name += "[pick(GLOB.last_names)]" character.real_name = real_name character.name = character.real_name @@ -1509,13 +1510,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.dna.features = features.Copy() character.dna.real_name = character.real_name var/datum/species/chosen_species - if(pref_species.id in GLOB.roundstart_races) + if(!roundstart_checks || (pref_species.id in GLOB.roundstart_races)) chosen_species = pref_species.type else chosen_species = /datum/species/human pref_species = new /datum/species/human save_character() - character.set_species(chosen_species, icon_update=0) + character.set_species(chosen_species, icon_update = FALSE, pref_load = TRUE) if(icon_updates) character.update_body() @@ -1540,7 +1541,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/namedata = GLOB.preferences_custom_names[name_id] if(!namedata) return - + var/raw_name = input(user, "Choose your character's [namedata["qdesc"]]:","Character Preference") as text|null if(!raw_name) if(namedata["allow_null"]) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 36e8c36f08..7d853e5453 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -204,7 +204,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["species"] >> species_id if(species_id) var/newtype = GLOB.species_list[species_id] - pref_species = new newtype() + if(newtype) + pref_species = new newtype if(!S["features["mcolor"]"] || S["features["mcolor"]"] == "#000") WRITE_FILE(S["features["mcolor"]"] , "#FFF") @@ -241,12 +242,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car else S["feature_human_tail"] >> features["tail_human"] S["feature_human_ears"] >> features["ears"] - + //Custom names for(var/custom_name_id in GLOB.preferences_custom_names) var/savefile_slot_name = custom_name_id + "_name" //TODO remove this - S[savefile_slot_name] >> custom_names[custom_name_id] - + S[savefile_slot_name] >> custom_names[custom_name_id] + S["prefered_security_department"] >> prefered_security_department //Jobs @@ -289,7 +290,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name)) be_random_body = sanitize_integer(be_random_body, 0, 1, initial(be_random_body)) - + if(gender == MALE) hair_style = sanitize_inlist(hair_style, GLOB.hair_styles_male_list) facial_hair_style = sanitize_inlist(facial_hair_style, GLOB.facial_hair_styles_male_list) @@ -382,7 +383,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car for(var/custom_name_id in GLOB.preferences_custom_names) var/savefile_slot_name = custom_name_id + "_name" //TODO remove this WRITE_FILE(S[savefile_slot_name],custom_names[custom_name_id]) - + WRITE_FILE(S["prefered_security_department"] , prefered_security_department) //Jobs diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 1dde03a8ed..b9ce170dc5 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -56,6 +56,22 @@ if(M.putItemFromInventoryInHandIfPossible(src, H.held_index)) add_fingerprint(usr) +/obj/item/reagent_containers/food/snacks/clothing + name = "oops" + desc = "If you're reading this it means I messed up. This is related to moths eating clothes and I didn't know a better way to do it than making a new food object." + list_reagents = list("nutriment" = 1) + tastes = list("dust" = 1, "lint" = 1) + +/obj/item/clothing/attack(mob/M, mob/user, def_zone) + if(user.a_intent != INTENT_HARM && ismoth(M)) + var/obj/item/reagent_containers/food/snacks/clothing/clothing_as_food = new + clothing_as_food.name = name + if(clothing_as_food.attack(M, user, def_zone)) + take_damage(15, sound_effect=FALSE) + qdel(clothing_as_food) + else + return ..() + /obj/item/clothing/attackby(obj/item/W, mob/user, params) if(damaged_clothes && istype(W, /obj/item/stack/sheet/cloth)) var/obj/item/stack/sheet/cloth/C = W diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm index 0e9be23aed..79a24afc6f 100644 --- a/code/modules/clothing/gloves/_gloves.dm +++ b/code/modules/clothing/gloves/_gloves.dm @@ -13,7 +13,7 @@ /obj/item/clothing/gloves/ComponentInitialize() . = ..() - AddComponent(/datum/component/redirect, list(COMSIG_COMPONENT_CLEAN_ACT), CALLBACK(src, .proc/clean_blood)) + AddComponent(/datum/component/redirect, list(COMSIG_COMPONENT_CLEAN_ACT = CALLBACK(src, .proc/clean_blood))) /obj/item/clothing/gloves/proc/clean_blood(strength) if(strength < CLEAN_STRENGTH_BLOOD) diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index ae4d80a0e4..f7c52c909e 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -79,6 +79,6 @@ clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR heat_protection = HEAD - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT cold_protection = HEAD min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index faa3ebdb0f..e5ffdcface 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -64,7 +64,7 @@ pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/detective dog_fashion = /datum/dog_fashion/head/detective -/obj/item/clothing/head/fedora/Initialize() +/obj/item/clothing/head/fedora/det_hat/Initialize() . = ..() new /obj/item/reagent_containers/food/drinks/flask/det(src) diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 88b51963e5..325c124867 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -424,6 +424,17 @@ mask = /obj/item/clothing/mask/breath suit_store = /obj/item/tank/internals/oxygen - - - +/datum/outfit/debug //Debug objs plus hardsuit + name = "Debug outfit" + uniform = /obj/item/clothing/under/patriotsuit + suit = /obj/item/clothing/suit/space/hardsuit/syndi/elite + shoes = /obj/item/clothing/shoes/magboots/advance + suit_store = /obj/item/tank/internals/oxygen + mask = /obj/item/clothing/mask/gas/welding + belt = /obj/item/storage/belt/utility/chief/full + gloves = /obj/item/clothing/gloves/combat + id = /obj/item/card/id/ert + glasses = /obj/item/clothing/glasses/meson/night + ears = /obj/item/radio/headset/headset_cent/commander + back = /obj/item/storage/backpack/holding + backpack_contents = list(/obj/item/card/emag=1, /obj/item/flashlight/emp/debug=1, /obj/item/construction/rcd/combat=1, /obj/item/gun/magic/wand/resurrection/debug=1, /obj/item/melee/transforming/energy/axe=1) diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index e3c32cd26c..375b4855e7 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -17,7 +17,7 @@ /obj/item/clothing/shoes/ComponentInitialize() . = ..() - AddComponent(/datum/component/redirect, list(COMSIG_COMPONENT_CLEAN_ACT), CALLBACK(src, .proc/clean_blood)) + AddComponent(/datum/component/redirect, list(COMSIG_COMPONENT_CLEAN_ACT = CALLBACK(src, .proc/clean_blood))) /obj/item/clothing/shoes/suicide_act(mob/living/carbon/user) if(rand(2)>1) diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index c81505d8e8..bd28b621b5 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -27,7 +27,7 @@ armor = list("melee" = 40, "bullet" = 30, "laser" = 25, "energy" = 25, "bomb" = 50, "bio" = 30, "rad" = 30, "fire" = 90, "acid" = 50) /obj/item/clothing/shoes/sandal - desc = "A pair of rather plain, wooden sandals." + desc = "A pair of rather plain wooden sandals." name = "sandals" icon_state = "wizard" strip_delay = 50 @@ -91,7 +91,7 @@ /obj/item/clothing/shoes/clown_shoes/jester name = "jester shoes" - desc = "A court jesters shoes, updated with modern squeaking technology." + desc = "A court jester's shoes, updated with modern squeaking technology." icon_state = "jester_shoes" /obj/item/clothing/shoes/jackboots diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 2e5896098f..0794ef29e7 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -190,7 +190,7 @@ item_color = "atmospherics" armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 25, "fire" = 100, "acid" = 75) heat_protection = HEAD //Uncomment to enable firesuit protection - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT /obj/item/clothing/suit/space/hardsuit/engine/atmos name = "atmospherics hardsuit" @@ -199,7 +199,7 @@ item_state = "atmo_hardsuit" armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 25, "fire" = 100, "acid" = 75) heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/atmos @@ -212,7 +212,7 @@ item_color = "white" armor = list("melee" = 40, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 50, "bio" = 100, "rad" = 90, "fire" = 100, "acid" = 90) heat_protection = HEAD - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT /obj/item/clothing/suit/space/hardsuit/engine/elite icon_state = "hardsuit-white" @@ -221,7 +221,7 @@ item_state = "ce_hardsuit" armor = list("melee" = 40, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 50, "bio" = 100, "rad" = 90, "fire" = 100, "acid" = 90) heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/elite jetpack = /obj/item/tank/jetpack/suit @@ -359,7 +359,7 @@ item_color = "syndielite" armor = list("melee" = 60, "bullet" = 60, "laser" = 50, "energy" = 25, "bomb" = 55, "bio" = 100, "rad" = 70, "fire" = 100, "acid" = 100) heat_protection = HEAD - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT visor_flags_inv = 0 visor_flags = 0 on = FALSE @@ -375,7 +375,7 @@ helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite armor = list("melee" = 60, "bullet" = 60, "laser" = 50, "energy" = 25, "bomb" = 55, "bio" = 100, "rad" = 70, "fire" = 100, "acid" = 100) heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF //The Owl Hardsuit @@ -410,7 +410,7 @@ resistance_flags = FIRE_PROOF | ACID_PROOF //No longer shall our kind be foiled by lone chemists with spray bottles! armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 20, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100) heat_protection = HEAD //Uncomment to enable firesuit protection - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT /obj/item/clothing/suit/space/hardsuit/wizard icon_state = "hardsuit-wiz" @@ -422,7 +422,7 @@ armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 20, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100) allowed = list(/obj/item/teleportation_scroll, /obj/item/tank/internals) heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT helmettype = /obj/item/clothing/head/helmet/space/hardsuit/wizard /obj/item/clothing/suit/space/hardsuit/wizard/Initialize() @@ -542,7 +542,7 @@ resistance_flags = FIRE_PROOF | ACID_PROOF flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR //we want to see the mask heat_protection = HEAD - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT actions_types = list() /obj/item/clothing/head/helmet/space/hardsuit/captain/attack_self() @@ -556,7 +556,7 @@ armor = list("melee" = 40, "bullet" = 50, "laser" = 50, "energy" = 25, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100) resistance_flags = FIRE_PROOF | ACID_PROOF heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT //this needed to be added a long fucking time ago + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT //this needed to be added a long fucking time ago helmettype = /obj/item/clothing/head/helmet/space/hardsuit/captain /obj/item/clothing/suit/space/hardsuit/captain/Initialize() @@ -628,7 +628,7 @@ if (mobhook && mobhook.parent != user) QDEL_NULL(mobhook) if (!mobhook) - mobhook = user.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED), CALLBACK(src, .proc/on_mob_move)) + mobhook = user.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, .proc/on_mob_move))) else QDEL_NULL(mobhook) @@ -800,7 +800,7 @@ recharge_delay = 15 armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/swat dog_fashion = /datum/dog_fashion/back/deathsquad @@ -812,5 +812,5 @@ item_color = "syndi" armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT actions_types = list() diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index a4b82c8234..dcd344563a 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -22,7 +22,7 @@ Contains: item_state = "deathsquad" armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF actions_types = list() @@ -37,7 +37,7 @@ Contains: 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" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF helmettype = /obj/item/clothing/head/helmet/space/hardsuit/deathsquad dog_fashion = /datum/dog_fashion/back/deathsquad @@ -62,7 +62,7 @@ Contains: flags_inv = 0 armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF /obj/item/clothing/suit/space/officer @@ -77,7 +77,7 @@ Contains: 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) armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF //NASA Voidsuit @@ -241,7 +241,7 @@ Contains: item_state = "griffinhat" armor = list("melee" = 20, "bullet" = 40, "laser" = 30, "energy" = 25, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 80) strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = ACID_PROOF | FIRE_PROOF /obj/item/clothing/suit/space/freedom @@ -252,7 +252,7 @@ Contains: 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) armor = list("melee" = 20, "bullet" = 40, "laser" = 30,"energy" = 25, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 80) strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = ACID_PROOF | FIRE_PROOF slowdown = 0 @@ -285,7 +285,7 @@ Contains: icon_state = "hardsuit0-prt" item_state = "hardsuit0-prt" item_color = "knight_grey" - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT actions_types = list() resistance_flags = FIRE_PROOF @@ -295,7 +295,7 @@ Contains: icon_state = "knight_grey" item_state = "knight_grey" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF /obj/item/clothing/suit/space/hardsuit/ert/paranormal/Initialize() diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 85767852e4..173d50ba64 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -81,7 +81,7 @@ 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 - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF /obj/item/clothing/head/hooded/cloakhood/drake @@ -90,5 +90,5 @@ 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) heat_protection = HEAD - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 0fadd66a75..9d039e0cb6 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -31,6 +31,21 @@ /* * Costume */ +/obj/item/clothing/suit/hooded/flashsuit + name = "flashy costume" + desc = "What did you expect?" + icon_state = "flashsuit" + item_state = "armor" + body_parts_covered = CHEST|GROIN + hoodtype = /obj/item/clothing/head/hooded/flashsuit + +/obj/item/clothing/head/hooded/flashsuit + name = "flash button" + desc = "You will learn to fear the flash." + icon_state = "flashsuit" + body_parts_covered = HEAD + flags_inv = HIDEHAIR|HIDEEARS|HIDEFACIALHAIR|HIDEFACE|HIDEMASK + /obj/item/clothing/suit/pirate name = "pirate coat" desc = "Yarr." @@ -397,7 +412,7 @@ desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable." icon_state = "militaryjacket" item_state = "militaryjacket" - 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/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/detective, /obj/item/radio) + 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/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/radio) /obj/item/clothing/suit/jacket/letterman name = "letterman jacket" diff --git a/code/modules/clothing/suits/reactive_armour.dm b/code/modules/clothing/suits/reactive_armour.dm index e71704132a..7542a0dd59 100644 --- a/code/modules/clothing/suits/reactive_armour.dm +++ b/code/modules/clothing/suits/reactive_armour.dm @@ -221,7 +221,7 @@ if(world.time < reactivearmor_cooldown) owner.visible_message("The reactive table armor's fabricators are still on cooldown!") return - owner.visible_message("The reactive teleport system flings [H] clear of [attack_text] and slams them into a fabricated table!") + owner.visible_message("The reactive teleport system flings [H] clear of [attack_text] and slams [H.p_them()] into a fabricated table!") owner.visible_message("[H] GOES ON THE TABLE!!!") owner.Knockdown(40) var/list/turfs = new/list() diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 3a9a72a543..c233ce414d 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -47,7 +47,7 @@ desc = "An expensive firesuit that protects against even the most deadly of station fires. Designed to protect even if the wearer is set aflame." icon_state = "atmos_firesuit" item_state = "firesuit_atmos" - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT /* * Bomb protection diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 8d250ab766..93058e1bc2 100755 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -280,6 +280,11 @@ desc = "Fills you with the conviction of JUSTICE. Lawyers tend to want to show it to everyone they meet." icon_state = "lawyerbadge" item_color = "lawyerbadge" + +/obj/item/clothing/accessory/lawyers_badge/attack_self(mob/user) + if(prob(1)) + user.say("The testimony contradicts the evidence!") + user.visible_message("[user] shows [user.p_their()] attorney's badge.", "You show your attorney's badge.") /obj/item/clothing/accessory/lawyers_badge/on_uniform_equip(obj/item/clothing/under/U, user) var/mob/living/L = user diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index 69535b77b0..0411a67846 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -67,6 +67,60 @@ fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE +/obj/item/clothing/under/rank/blueclown + name = "blue clown suit" + desc = "'BLUE HONK!'" + icon_state = "blueclown" + item_state = "blueclown" + item_color = "blueclown" + fitted = FEMALE_UNIFORM_TOP + can_adjust = FALSE + +/obj/item/clothing/under/rank/greenclown + name = "green clown suit" + desc = "'GREEN HONK!'" + icon_state = "greenclown" + item_state = "greenclown" + item_color = "greenclown" + fitted = FEMALE_UNIFORM_TOP + can_adjust = FALSE + +/obj/item/clothing/under/rank/yellowclown + name = "yellow clown suit" + desc = "'YELLOW HONK!'" + icon_state = "yellowclown" + item_state = "yellowclown" + item_color = "yellowclown" + fitted = FEMALE_UNIFORM_TOP + can_adjust = FALSE + +/obj/item/clothing/under/rank/purpleclown + name = "purple clown suit" + desc = "'PURPLE HONK!'" + icon_state = "purpleclown" + item_state = "purpleclown" + item_color = "purpleclown" + fitted = FEMALE_UNIFORM_TOP + can_adjust = FALSE + +/obj/item/clothing/under/rank/orangeclown + name = "orange clown suit" + desc = "'ORANGE HONK!'" + icon_state = "orangeclown" + item_state = "orangeclown" + item_color = "orangeclown" + fitted = FEMALE_UNIFORM_TOP + can_adjust = FALSE + +/obj/item/clothing/under/rank/rainbowclown + name = "rainbow clown suit" + desc = "'R A I N B O W HONK!'" + icon_state = "rainbowclown" + item_state = "rainbowclown" + item_color = "rainbowclown" + fitted = FEMALE_UNIFORM_TOP + can_adjust = FALSE + /obj/item/clothing/under/rank/clown/Initialize() . = ..() AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 50) diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 1ffda7413e..856336a4a3 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -370,6 +370,14 @@ /obj/item/stack/rods = 12) category = CAT_MISC +/datum/crafting_recipe/mousetrap + name = "Mouse Trap" + result = /obj/item/assembly/mousetrap + time = 10 + reqs = list(/obj/item/stack/sheet/cardboard = 1, + /obj/item/stack/rods = 1) + category = CAT_MISC + /datum/crafting_recipe/papersack name = "Paper Sack" result = /obj/item/storage/box/papersack diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm index eb8c8340df..172748f023 100644 --- a/code/modules/events/holiday/vday.dm +++ b/code/modules/events/holiday/vday.dm @@ -160,7 +160,7 @@ "A heart-shaped candy that reads: ERP", "A heart-shaped candy that reads: LEWD", "A heart-shaped candy that reads: LUSTY", - "A heart-shaped candy that reads: SPESS LOVE" + "A heart-shaped candy that reads: SPESS LOVE", "A heart-shaped candy that reads: AYY LMAO", "A heart-shaped candy that reads: TABLE ME", "A heart-shaped candy that reads: HAND CUFFS", diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index 76c51aabcd..4fe31d6dde 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -47,7 +47,7 @@ paid_off = TRUE return else - priority_announce("Trying to cheat us ? You'll regret this!",sender_override = ship_name) + priority_announce("Trying to cheat us? You'll regret this!",sender_override = ship_name) if(!shuttle_spawned) spawn_shuttle() @@ -60,7 +60,7 @@ /datum/round_event/pirates/proc/spawn_shuttle() shuttle_spawned = TRUE - var/list/candidates = pollGhostCandidates("Do you wish to be considered for pirate crew ?", ROLE_TRAITOR) + var/list/candidates = pollGhostCandidates("Do you wish to be considered for pirate crew?", ROLE_TRAITOR) shuffle_inplace(candidates) var/datum/map_template/shuttle/pirate/default/ship = new @@ -81,6 +81,8 @@ candidates -= M else notify_ghosts("Space pirates are waking up!", source = spawner, action=NOTIFY_ATTACK, flashwindow = FALSE) + for(var/obj/docking_port/mobile/port in A) + port.register() priority_announce("Unidentified armed ship detected near the station.") @@ -120,12 +122,12 @@ gps.tracking = TRUE active = TRUE to_chat(user,"You toggle [src] [active ? "on":"off"].") - to_chat(user,"The scrambling signal can be now tracked by gps.") + to_chat(user,"The scrambling signal can be now tracked by GPS.") START_PROCESSING(SSobj,src) /obj/machinery/shuttle_scrambler/interact(mob/user) if(!active) - if(alert(user, "Turning the scrambler on will make the shuttle trackable by GPS. Are you sure you want to do it ?", "Scrambler", "Yes", "Cancel") == "Cancel") + if(alert(user, "Turning the scrambler on will make the shuttle trackable by GPS. Are you sure you want to do it?", "Scrambler", "Yes", "Cancel") == "Cancel") return if(active || !user.canUseTopic(src)) return diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 0d1fb7e7d8..966d5cc0d8 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -92,7 +92,7 @@ if(issilicon(crosser)) return if(prob(severity) && istype(crosser) && !isvineimmune(crosser)) - to_chat(crosser, "You accidently touch the vine and feel a strange sensation.") + to_chat(crosser, "You accidentally touch the vine and feel a strange sensation.") crosser.adjustToxLoss(5) /datum/spacevine_mutation/toxicity/on_eat(obj/structure/spacevine/holder, mob/living/eater) diff --git a/code/modules/fields/fields.dm b/code/modules/fields/fields.dm index 0fdd2699d6..5e34c934d9 100644 --- a/code/modules/fields/fields.dm +++ b/code/modules/fields/fields.dm @@ -305,7 +305,7 @@ to_chat(user, "You turn [src] [operating? "on":"off"].") QDEL_NULL(mobhook) if(!istype(current) && operating) - mobhook = user.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED), CALLBACK(src, .proc/on_mob_move)) + mobhook = user.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, .proc/on_mob_move))) setup_debug_field() else if(!operating) QDEL_NULL(current) diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 8c4e0eaae0..f8969cf1a5 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -9,6 +9,7 @@ idle_power_usage = 5 active_power_usage = 100 circuit = /obj/item/circuitboard/machine/microwave + pass_flags = PASSTABLE var/operating = FALSE // Is it on? var/dirty = 0 // = {0..100} Does it need cleaning? var/broken = 0 // ={0,1,2} How broken is it??? diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 131f28aa12..b6e3b19640 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -13,8 +13,6 @@ active_power_usage = 100 circuit = /obj/item/circuitboard/machine/smartfridge var/max_n_of_items = 1500 - var/icon_on = "smartfridge" - var/icon_off = "smartfridge-off" var/allow_ai_retrieve = FALSE var/list/initial_contents @@ -40,10 +38,11 @@ update_icon() /obj/machinery/smartfridge/update_icon() + var/startstate = initial(icon_state) if(!stat) - icon_state = icon_on + icon_state = startstate else - icon_state = icon_off + icon_state = "[startstate]-off" @@ -208,12 +207,10 @@ name = "drying rack" desc = "A wooden contraption, used to dry plant products, food and leather." icon = 'icons/obj/hydroponics/equipment.dmi' - icon_state = "drying_rack_on" + icon_state = "drying_rack" use_power = IDLE_POWER_USE idle_power_usage = 5 active_power_usage = 200 - icon_on = "drying_rack_on" - icon_off = "drying_rack" var/drying = FALSE /obj/machinery/smartfridge/drying_rack/Initialize() @@ -418,6 +415,7 @@ name = "disk compartmentalizer" desc = "A machine capable of storing a variety of disks. Denoted by most as the DSU (disk storage unit)." icon_state = "disktoaster" + pass_flags = PASSTABLE /obj/machinery/smartfridge/disks/accept_check(obj/item/O) if(istype(O, /obj/item/disk/)) diff --git a/code/modules/goonchat/browserassets/css/browserOutput.css b/code/modules/goonchat/browserassets/css/browserOutput.css index 1b2bd4da63..fe90e8a333 100644 --- a/code/modules/goonchat/browserassets/css/browserOutput.css +++ b/code/modules/goonchat/browserassets/css/browserOutput.css @@ -264,7 +264,7 @@ em {font-style: normal; font-weight: bold;} .adminobserverooc {color: #0099cc; font-weight: bold;} .adminooc {color: #700038; font-weight: bold;} -.adminobserver {color: #996600; font-weight: bold;} +.adminsay {color: #FF4500; font-weight: bold;} .admin {color: #386aff; font-weight: bold;} .name { font-weight: bold;} diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index 701167c853..e99e721ef6 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -81,6 +81,9 @@ begin_month = FEBRUARY drone_hat = /obj/item/clothing/head/helmet/space/chronos +/datum/holiday/groundhog/getStationPrefix() + return pick("Deja Vu") //I have been to this place before + /datum/holiday/valentines name = VALENTINES begin_day = 13 @@ -149,6 +152,9 @@ /datum/holiday/no_this_is_patrick/getStationPrefix() return pick("Blarney","Green","Leprechaun","Booze") +/datum/holiday/no_this_is_patrick/greet() + return "Happy National Inebriation Day!" + /datum/holiday/april_fools name = APRIL_FOOLS begin_day = 1 @@ -168,7 +174,15 @@ begin_month = APRIL /datum/holiday/fourtwenty/getStationPrefix() - return pick("Snoop","Blunt","Toke","Dank") + return pick("Snoop","Blunt","Toke","Dank","Cheech","Chong") + +/datum/holiday/tea + name = "National Tea Day" + begin_day = 21 + begin_month = APRIL + +/datum/holiday/tea/getStationPrefix() + return pick("Crumpet","Assam","Oolong","Pu-erh","Sweet Tea","Green","Black") /datum/holiday/earth name = "Earth Day" @@ -190,6 +204,14 @@ /datum/holiday/firefighter/getStationPrefix() return pick("Burning","Blazing","Plasma","Fire") +/datum/holiday/bee + name = "Bee Day" + begin_day = 20 + begin_month = MAY + +/datum/holiday/bee/getStationPrefix() + return pick("Bee","Honey","Hive","Africanized","Mead","Buzz") + /datum/holiday/summersolstice name = "Summer Solstice" begin_day = 21 @@ -205,10 +227,18 @@ name = "UFO Day" begin_day = 2 begin_month = JULY - drone_hat = /obj/item/clothing/mask/facehugger/dead + drone_hat = /obj/item/clothing/mask/facehugger/dead /datum/holiday/UFO/getStationPrefix() //Is such a thing even possible? - return pick("Ayy","Truth","Tsoukalos","Mulder") //Yes it is! + return pick("Ayy","Truth","Tsoukalos","Mulder","Scully") //Yes it is! + +/datum/holiday/USA + name = "Independence Day" + begin_day = 4 + begin_month = JULY + +/datum/holiday/USA/getStationPrefix() + return pick("Independant","American","Burger","Bald Eagle","Star-Spangled") /datum/holiday/writer name = "Writer's Day" @@ -225,8 +255,14 @@ /datum/holiday/beer name = "Beer Day" - begin_day = 5 - begin_month = AUGUST + +/datum/holiday/beer/shouldCelebrate(dd, mm, yy, ww, ddd) + if(mm == 8 && ddd == FRIDAY) //First Friday in August + return TRUE + return FALSE + +/datum/holiday/beer/getStationPrefix() + return pick("Stout","Porter","Lager","Ale","Malt","Bock","Doppelbock","Hefeweizen","Pilsner","IPA","Lite") //I'm sorry for the last one /datum/holiday/pirate name = "Talk-Like-a-Pirate Day" @@ -366,6 +402,15 @@ begin_month = JUNE begin_weekday = SUNDAY +/datum/holiday/moth + name = "Moth Week" + +/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)) + +/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") + /datum/holiday/ramadan name = "Start of Ramadan" diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm index 7e541f2471..d6eacfe0e1 100644 --- a/code/modules/hydroponics/gene_modder.dm +++ b/code/modules/hydroponics/gene_modder.dm @@ -5,6 +5,7 @@ icon_state = "dnamod" density = TRUE circuit = /obj/item/circuitboard/machine/plantgenes + pass_flags = PASSTABLE var/obj/item/seeds/seed var/obj/item/disk/plantgene/disk diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index dcd49356a3..d6e26519fe 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -59,6 +59,11 @@ COLOR_ASSEMBLY_PURPLE ) +/obj/item/electronic_assembly/New() + ..() + src.max_components = round(max_components) + src.max_complexity = round(max_complexity) + /obj/item/electronic_assembly/GenerateTag() tag = "assembly_[next_assembly_id++]" @@ -608,6 +613,37 @@ icon_state = "setup_small_pda" desc = "It's a case, for building small electronics with. This one resembles a PDA." +/obj/item/electronic_assembly/small + name = "electronic device" + icon_state = "setup_device" + desc = "It's a case, for building tiny-sized electronics with." + w_class = WEIGHT_CLASS_TINY + max_components = IC_MAX_SIZE_BASE / 2 + max_complexity = IC_COMPLEXITY_BASE / 2 + +/obj/item/electronic_assembly/small/default + name = "type-a electronic device" + +/obj/item/electronic_assembly/small/cylinder + name = "type-b electronic device" + icon_state = "setup_device_cylinder" + desc = "It's a case, for building tiny-sized electronics with. This one has a cylindrical design." + +/obj/item/electronic_assembly/small/scanner + name = "type-c electronic device" + icon_state = "setup_device_scanner" + desc = "It's a case, for building tiny-sized electronics with. This one has a scanner-like design." + +/obj/item/electronic_assembly/small/hook + name = "type-d electronic device" + icon_state = "setup_device_hook" + desc = "It's a case, for building tiny-sized electronics with. This one looks like it has a belt clip, but it's purely decorative." + +/obj/item/electronic_assembly/small/box + name = "type-e electronic device" + icon_state = "setup_device_box" + desc = "It's a case, for building tiny-sized electronics with. This one has a boxy design." + /obj/item/electronic_assembly/medium name = "electronic mechanism" icon_state = "setup_medium" @@ -749,6 +785,14 @@ max_components = IC_MAX_SIZE_BASE max_complexity = IC_COMPLEXITY_BASE +/obj/item/electronic_assembly/wallmount/tiny + name = "tiny wall-mounted electronic assembly" + icon_state = "setup_wallmount_tiny" + desc = "It's a case, for building tiny electronics with. It has a magnetized backing to allow it to stick to walls, but you'll still need to wrench the anchoring bolts in place to keep it on." + w_class = WEIGHT_CLASS_TINY + max_components = IC_MAX_SIZE_BASE / 2 + max_complexity = IC_COMPLEXITY_BASE / 2 + /obj/item/electronic_assembly/wallmount/proc/mount_assembly(turf/on_wall, mob/user) //Yeah, this is admittedly just an abridged and kitbashed version of the wallframe attach procs. if(get_dist(on_wall,user)>1) return diff --git a/code/modules/integrated_electronics/subtypes/access.dm b/code/modules/integrated_electronics/subtypes/access.dm index 9012cd1089..3cbdedc983 100644 --- a/code/modules/integrated_electronics/subtypes/access.dm +++ b/code/modules/integrated_electronics/subtypes/access.dm @@ -14,10 +14,6 @@ "on read" = IC_PINTYPE_PULSE_OUT ) -/obj/item/integrated_circuit/input/card_reader/old - name = "card reader" - spawn_flags = 0 - /obj/item/integrated_circuit/input/card_reader/attackby_react(obj/item/I, mob/living/user, intent) var/obj/item/card/id/card = I.GetID() var/list/access = I.GetAccess() diff --git a/code/modules/integrated_electronics/subtypes/data_transfer.dm b/code/modules/integrated_electronics/subtypes/data_transfer.dm index 682d982373..8e1c715d83 100644 --- a/code/modules/integrated_electronics/subtypes/data_transfer.dm +++ b/code/modules/integrated_electronics/subtypes/data_transfer.dm @@ -145,6 +145,55 @@ w_class = WEIGHT_CLASS_SMALL number_of_pins = 16 +/obj/item/integrated_circuit/transfer/pulsemultiplexer + name = "two pulse multiplexer" + desc = "Pulse in pins to choose the pin value to be sent." + extended_desc = "The input pulses are used to select which of the input pins has its data moved to the output." + complexity = 2 + icon_state = "dmux2" + inputs = list() + outputs = list("output" = IC_PINTYPE_ANY) + activators = list("on selected" = IC_PINTYPE_PULSE_OUT) + spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH + power_draw_per_use = 4 + var/number_of_pins = 2 + +/obj/item/integrated_circuit/transfer/pulsemultiplexer/Initialize() + for(var/i = 1 to number_of_pins) + inputs["input [i]"] = IC_PINTYPE_ANY + for(var/i = 1 to number_of_pins) + activators["input [i]"] = IC_PINTYPE_PULSE_IN + complexity = number_of_pins + + . = ..() + desc += " It has [number_of_pins] pulse in pins and [number_of_pins] output pins." + extended_desc += " This pulse multiplexer has a range from 1 to [activators.len - 1]." + +/obj/item/integrated_circuit/transfer/pulsemultiplexer/do_work(ord) + var/input_index = ord - 2 + + if(!isnull(input_index) && (input_index >= 0 && input_index < inputs.len)) + set_pin_data(IC_OUTPUT, 1,get_pin_data(IC_INPUT, input_index + 1)) + push_data() + activate_pin(1) + +/obj/item/integrated_circuit/transfer/pulsemultiplexer/medium + name = "four pulse multiplexer" + icon_state = "dmux4" + number_of_pins = 4 + +/obj/item/integrated_circuit/transfer/pulsemultiplexer/large + name = "eight pulse multiplexer" + icon_state = "dmux8" + w_class = WEIGHT_CLASS_SMALL + number_of_pins = 8 + +/obj/item/integrated_circuit/transfer/pulsemultiplexer/huge + name = "sixteen pulse multiplexer" + icon_state = "dmux16" + w_class = WEIGHT_CLASS_SMALL + number_of_pins = 16 + /obj/item/integrated_circuit/transfer/wire_node name = "wire node" desc = "Just a wire node to make wiring easier. Transfers the pulse from in to out." @@ -156,4 +205,4 @@ size = 0.1 /obj/item/integrated_circuit/transfer/wire_node/do_work() - activate_pin(2) \ No newline at end of file + activate_pin(2) diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm index 96ca6a3055..c303203281 100644 --- a/code/modules/integrated_electronics/subtypes/input.dm +++ b/code/modules/integrated_electronics/subtypes/input.dm @@ -162,11 +162,6 @@ push_data() activate_pin(2) -//please delete at a later date after people stop using the old named circuit -/obj/item/integrated_circuit/input/adv_med_scanner/old - name = "integrated advanced medical analyser" - spawn_flags = 0 - /obj/item/integrated_circuit/input/slime_scanner name = "slime_scanner" desc = "A very small version of the xenobio analyser. This allows the machine to know every needed properties of slime. Output mutation list is non-associative." @@ -729,8 +724,7 @@ inputs = list( "target NTNet addresses"= IC_PINTYPE_STRING, "data to send" = IC_PINTYPE_STRING, - "secondary text" = IC_PINTYPE_STRING, - "passkey" = IC_PINTYPE_STRING, //No this isn't a real passkey encryption scheme but that's why you keep your nodes secure so no one can find it out! + "secondary text" = IC_PINTYPE_STRING ) outputs = list( "address received" = IC_PINTYPE_STRING, @@ -756,11 +750,10 @@ var/target_address = get_pin_data(IC_INPUT, 1) var/message = get_pin_data(IC_INPUT, 2) var/text = get_pin_data(IC_INPUT, 3) - var/key = get_pin_data(IC_INPUT, 4) var/datum/netdata/data = new data.recipient_ids = splittext(target_address, ";") - data.standard_format_data(message, text, key) + data.standard_format_data(message, text, assembly ? strtohex(XorEncrypt(json_encode(assembly.access_card.access), SScircuit.cipherkey)) : null) ntnet_send(data) /obj/item/integrated_circuit/input/ntnet_receive(datum/netdata/data) @@ -777,9 +770,9 @@ name = "Low level NTNet transreceiver" desc = "Enables the sending and receiving of messages over NTNet via packet data protocol. Allows advanced control of message contents and signalling. Must use associative lists. Outputs associative list. Has a slower transmission rate than normal NTNet circuits, due to increased data processing complexity." extended_desc = "Data can be sent or received using the second pin on each side, \ - with additonal data reserved for the third pin. When a message is received, the second activation pin \ - will pulse whatever is connected to it. Pulsing the first activation pin will send a message. Messages \ - can be sent to multiple recepients. Addresses must be separated with a semicolon, like this: Address1;Address2;Etc." + When a message is received, the second activation pin will pulse whatever is connected to it. \ + Pulsing the first activation pin will send a message. Messages can be sent to multiple recepients. \ + Addresses must be separated with a semicolon, like this: Address1;Address2;Etc." icon_state = "signal" complexity = 4 cooldown_per_use = 10 @@ -809,6 +802,7 @@ var/datum/netdata/data = new data.recipient_ids = splittext(target_address, ";") data.data = message + data.passkey = assembly.access_card.access ntnet_send(data) /obj/item/integrated_circuit/input/ntnet_advanced/ntnet_receive(datum/netdata/data) diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm index 1a89fd5f36..1da1c4b2a7 100644 --- a/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -359,6 +359,7 @@ outputs = list("first" = IC_PINTYPE_REF, "last" = IC_PINTYPE_REF, "amount" = IC_PINTYPE_NUMBER,"contents" = IC_PINTYPE_LIST) activators = list("pulse in" = IC_PINTYPE_PULSE_IN,"pulse out" = IC_PINTYPE_PULSE_OUT) spawn_flags = IC_SPAWN_RESEARCH + action_flags = IC_ACTION_COMBAT power_draw_per_use = 50 var/max_items = 10 @@ -528,16 +529,24 @@ var/x_abs = CLAMP(T.x + target_x_rel, 0, world.maxx) var/y_abs = CLAMP(T.y + target_y_rel, 0, world.maxy) var/range = round(CLAMP(sqrt(target_x_rel*target_x_rel+target_y_rel*target_y_rel),0,8),1) - + //remove damage + A.throwforce = 0 + A.embedding = list("embed_chance" = 0) + //throw it assembly.visible_message("[assembly] has thrown [A]!") log_attack("[assembly] [REF(assembly)] has thrown [A].") A.forceMove(drop_location()) - A.throw_at(locate(x_abs, y_abs, T.z), range, 3) + A.throw_at(locate(x_abs, y_abs, T.z), range, 3, , , , CALLBACK(src, .proc/post_throw, A)) // If the item came from a grabber now we can update the outputs since we've thrown it. if(istype(G)) G.update_outputs() +/obj/item/integrated_circuit/manipulation/thrower/proc/post_throw(obj/item/A) + //return damage + A.throwforce = initial(A.throwforce) + A.embedding = initial(A.embedding) + /obj/item/integrated_circuit/manipulation/matman name = "material manager" desc = "This circuit is designed for automatic storage and distribution of materials." diff --git a/code/modules/integrated_electronics/subtypes/output.dm b/code/modules/integrated_electronics/subtypes/output.dm index b887617ea8..9bd63e83a8 100644 --- a/code/modules/integrated_electronics/subtypes/output.dm +++ b/code/modules/integrated_electronics/subtypes/output.dm @@ -2,7 +2,7 @@ category_text = "Output" /obj/item/integrated_circuit/output/screen - name = "small screen" + name = "screen" extended_desc = " use <br> to start a new line" desc = "Takes any data type as an input, and displays it to the user upon examining." icon_state = "screen" @@ -34,39 +34,6 @@ else stuff_to_display = replacetext("[I.data]", eol , "
    ") -/obj/item/integrated_circuit/output/screen/medium - name = "screen" - desc = "Takes any data type as an input and displays it to the user upon examining, and to adjacent beings when pulsed." - icon_state = "screen_medium" - power_draw_per_use = 20 - -/obj/item/integrated_circuit/output/screen/medium/do_work() - ..() - var/list/nearby_things = range(0, get_turf(src)) - for(var/mob/M in nearby_things) - var/obj/O = assembly ? assembly : src - to_chat(M, "[icon2html(O.icon, world, O.icon_state)] [stuff_to_display]") - if(assembly) - assembly.investigate_log("displayed \"[html_encode(stuff_to_display)]\" with [type].", INVESTIGATE_CIRCUIT) - else - investigate_log("displayed \"[html_encode(stuff_to_display)]\" as [type].", INVESTIGATE_CIRCUIT) - -/obj/item/integrated_circuit/output/screen/large - name = "large screen" - desc = "Takes any data type as an input and displays it to the user upon examining, and to all nearby beings when pulsed." - icon_state = "screen_large" - power_draw_per_use = 40 - cooldown_per_use = 10 - -/obj/item/integrated_circuit/output/screen/large/do_work() - ..() - var/obj/O = assembly ? get_turf(assembly) : loc - O.visible_message("[icon2html(O.icon, world, O.icon_state)] [stuff_to_display]") - if(assembly) - assembly.investigate_log("displayed \"[html_encode(stuff_to_display)]\" with [type].", INVESTIGATE_CIRCUIT) - else - investigate_log("displayed \"[html_encode(stuff_to_display)]\" as [type].", INVESTIGATE_CIRCUIT) - /obj/item/integrated_circuit/output/light name = "light" desc = "A basic light which can be toggled on/off when pulsed." @@ -88,7 +55,7 @@ /obj/item/integrated_circuit/output/light/proc/update_lighting() if(light_toggled) if(assembly) - assembly.set_light(l_range = light_brightness, l_power = light_brightness, l_color = light_rgb) + assembly.set_light(l_range = light_brightness, l_power = 1, l_color = light_rgb) else if(assembly) assembly.set_light(0) @@ -118,7 +85,7 @@ var/brightness = get_pin_data(IC_INPUT, 2) if(new_color && isnum(brightness)) - brightness = CLAMP(brightness, 0, 6) + brightness = CLAMP(brightness, 0, 4) light_rgb = new_color light_brightness = brightness @@ -250,7 +217,7 @@ A.say(sanitized_text) if (assembly) log_say("[assembly] [REF(assembly)] : [sanitized_text]") - else + else log_say("[name] ([type]) : [sanitized_text]") /obj/item/integrated_circuit/output/video_camera diff --git a/code/modules/integrated_electronics/subtypes/reagents.dm b/code/modules/integrated_electronics/subtypes/reagents.dm index 2a6b4a1a80..bae45729f3 100644 --- a/code/modules/integrated_electronics/subtypes/reagents.dm +++ b/code/modules/integrated_electronics/subtypes/reagents.dm @@ -16,59 +16,6 @@ set_pin_data(IC_OUTPUT, 1, reagents.total_volume) push_data() -/obj/item/integrated_circuit/reagent/smoke - name = "smoke generator" - desc = "Unlike most electronics, creating smoke is completely intentional." - icon_state = "smoke" - extended_desc = "This smoke generator creates clouds of smoke on command. It can also hold liquids inside, which will go \ - into the smoke clouds when activated. The reagents are consumed when the smoke is made." - ext_cooldown = 1 - container_type = OPENCONTAINER - volume = 100 - - complexity = 20 - cooldown_per_use = 1 SECONDS - inputs = list() - outputs = list( - "volume used" = IC_PINTYPE_NUMBER, - "self reference" = IC_PINTYPE_REF - ) - activators = list( - "create smoke" = IC_PINTYPE_PULSE_IN, - "on smoked" = IC_PINTYPE_PULSE_OUT, - "push ref" = IC_PINTYPE_PULSE_IN - ) - spawn_flags = IC_SPAWN_RESEARCH - power_draw_per_use = 20 - var/smoke_radius = 5 - var/notified = FALSE - -/obj/item/integrated_circuit/reagent/smoke/on_reagent_change(changetype) - //reset warning only if we have reagents now - if(changetype == ADD_REAGENT) - notified = FALSE - push_vol() - -/obj/item/integrated_circuit/reagent/smoke/do_work(ord) - switch(ord) - if(1) - if(!reagents || (reagents.total_volume < IC_SMOKE_REAGENTS_MINIMUM_UNITS)) - return - var/location = get_turf(src) - var/datum/effect_system/smoke_spread/chem/S = new - S.attach(location) - playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3) - if(S) - S.set_up(reagents, smoke_radius, location, notified) - if(!notified) - notified = TRUE - S.start() - reagents.clear_reagents() - activate_pin(2) - if(3) - set_pin_data(IC_OUTPUT, 2, WEAKREF(src)) - push_data() - // Hydroponics trays have no reagents holder and handle reagents in their own snowflakey way. // This is a dirty hack to make injecting reagents into them work. // TODO: refactor that. diff --git a/code/modules/integrated_electronics/subtypes/smart.dm b/code/modules/integrated_electronics/subtypes/smart.dm index 4445c1e1f3..bd93ae8314 100644 --- a/code/modules/integrated_electronics/subtypes/smart.dm +++ b/code/modules/integrated_electronics/subtypes/smart.dm @@ -95,12 +95,7 @@ if(!assembly) activate_pin(3) return - var/Ps = get_pin_data(IC_INPUT, 4) - if(!Ps) - return - var/list/Pl = json_decode(XorEncrypt(hextostr(Ps, TRUE), SScircuit.cipherkey)) - if(Pl&&islist(Pl)) - idc.access = Pl + idc.access = assembly.access_card.access var/turf/a_loc = get_turf(assembly) var/list/P = cir_get_path_to(assembly, locate(get_pin_data(IC_INPUT, 1),get_pin_data(IC_INPUT, 2),a_loc.z), /turf/proc/Distance_cardinal, 0, 200, id=idc, exclude=get_turf(get_pin_data_as_type(IC_INPUT,3, /atom)), simulated_only = 0) diff --git a/code/modules/integrated_electronics/subtypes/text.dm b/code/modules/integrated_electronics/subtypes/text.dm new file mode 100644 index 0000000000..bcc3d94766 --- /dev/null +++ b/code/modules/integrated_electronics/subtypes/text.dm @@ -0,0 +1,29 @@ +/obj/item/integrated_circuit/text + name = "text thingy" + desc = "Does text-processing related things." + category_text = "Text" + complexity = 1 + +// - Text Replacer - // +/obj/item/integrated_circuit/text/text_replacer + name = "find-replace circuit" + desc = "Replaces all of one bit of text with another" + extended_desc = "Takes a string(haystack) and puts out the string while having a certain word(needle) replaced with another." + spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH + inputs = list( + "haystack" = IC_PINTYPE_STRING, + "needle" = IC_PINTYPE_STRING, + "replacement" = IC_PINTYPE_STRING + ) + activators = list( + "replace" = IC_PINTYPE_PULSE_IN, + "on replaced" = IC_PINTYPE_PULSE_OUT + ) + outputs = list( + "replaced string" = IC_PINTYPE_STRING + ) + +/obj/item/integrated_circuit/text/text_replacer/do_work() + set_pin_data(IC_OUTPUT, 1,replacetext(get_pin_data(IC_INPUT, 1), get_pin_data(IC_INPUT, 2), get_pin_data(IC_INPUT, 3))) + push_data() + activate_pin(2) diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index ced08bbc6a..28f2063b8d 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -166,7 +166,7 @@ if(6) //supply return list(ACCESS_MAILSORTING, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_CARGO, ACCESS_QM, ACCESS_VAULT) if(7) //command - return list(ACCESS_HEADS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_TELEPORTER, ACCESS_EVA, ACCESS_GATEWAY, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_HOP, ACCESS_CAPTAIN) + return list(ACCESS_HEADS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_TELEPORTER, ACCESS_EVA, ACCESS_GATEWAY, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_HOP, ACCESS_CAPTAIN, ACCESS_VAULT) /proc/get_region_accesses_name(code) switch(code) diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index 988eca631c..94cf27749e 100755 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -52,6 +52,13 @@ Captain chameleon_extras = list(/obj/item/gun/energy/e_gun, /obj/item/stamp/captain) +/datum/outfit/job/captain/hardsuit + name = "Captain (Hardsuit)" + + mask = /obj/item/clothing/mask/gas/sechailer + suit = /obj/item/clothing/suit/space/hardsuit/captain + suit_store = /obj/item/tank/internals/oxygen + /* Head of Personnel */ diff --git a/code/modules/jobs/job_types/cargo_service.dm b/code/modules/jobs/job_types/cargo_service.dm index 98cdccf4ee..0fe4e3c20b 100644 --- a/code/modules/jobs/job_types/cargo_service.dm +++ b/code/modules/jobs/job_types/cargo_service.dm @@ -78,7 +78,7 @@ Shaft Miner minimal_access = list(ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MAILSORTING, ACCESS_MINERAL_STOREROOM) /datum/outfit/job/miner - name = "Shaft Miner (Lavaland)" + name = "Shaft Miner" jobtype = /datum/job/mining belt = /obj/item/pda/shaftminer @@ -101,13 +101,8 @@ Shaft Miner chameleon_extras = /obj/item/gun/energy/kinetic_accelerator -/datum/outfit/job/miner/asteroid - name = "Shaft Miner (Asteroid)" - uniform = /obj/item/clothing/under/rank/miner - shoes = /obj/item/clothing/shoes/workboots - /datum/outfit/job/miner/equipped - name = "Shaft Miner (Lavaland + Equipment)" + name = "Shaft Miner (Equipment)" suit = /obj/item/clothing/suit/hooded/explorer mask = /obj/item/clothing/mask/gas/explorer glasses = /obj/item/clothing/glasses/meson @@ -129,15 +124,11 @@ Shaft Miner var/obj/item/clothing/suit/hooded/S = H.wear_suit S.ToggleHood() -/datum/outfit/job/miner/equipped/asteroid - name = "Shaft Miner (Asteroid + Equipment)" - uniform = /obj/item/clothing/under/rank/miner - shoes = /obj/item/clothing/shoes/workboots +/datum/outfit/job/miner/equipped/hardsuit + name = "Shaft Miner (Equipment + Hardsuit)" suit = /obj/item/clothing/suit/space/hardsuit/mining mask = /obj/item/clothing/mask/breath - - /* Bartender */ diff --git a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm index 171a437bb1..f28e5f1afc 100644 --- a/code/modules/jobs/job_types/engineering.dm +++ b/code/modules/jobs/job_types/engineering.dm @@ -57,6 +57,7 @@ Chief Engineer suit = /obj/item/clothing/suit/space/hardsuit/engine/elite shoes = /obj/item/clothing/shoes/magboots/advance suit_store = /obj/item/tank/internals/oxygen + glasses = /obj/item/clothing/glasses/meson/engine gloves = /obj/item/clothing/gloves/color/yellow head = null internals_slot = SLOT_S_STORE diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index 5d4802f93a..ea5573b89f 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -69,12 +69,12 @@ return TRUE /datum/job/proc/GetAntagRep() - . = CONFIG_GET(keyed_number_list/antag_rep)[lowertext(title)] + . = CONFIG_GET(keyed_list/antag_rep)[lowertext(title)] if(. == null) return antag_rep //Don't override this unless the job transforms into a non-human (Silicons do this for example) -/datum/job/proc/equip(mob/living/carbon/human/H, visualsOnly = FALSE, announce = TRUE, latejoin = FALSE) +/datum/job/proc/equip(mob/living/carbon/human/H, visualsOnly = FALSE, announce = TRUE, latejoin = FALSE, datum/outfit/outfit_override = null) if(!H) return FALSE @@ -82,13 +82,12 @@ if(H.dna.species.id != "human") H.set_species(/datum/species/human) H.apply_pref_name("human", H.client) - purrbation_remove(H, silent=TRUE) //Equip the rest of the gear H.dna.species.before_equip_job(src, H, visualsOnly) - if(outfit) - H.equipOutfit(outfit, visualsOnly) + if(outfit_override || outfit) + H.equipOutfit(outfit_override ? outfit_override : outfit, visualsOnly) H.dna.species.after_equip_job(src, H, visualsOnly) diff --git a/code/modules/jobs/job_types/medical.dm b/code/modules/jobs/job_types/medical.dm index 2ab5da36aa..5a926f490a 100644 --- a/code/modules/jobs/job_types/medical.dm +++ b/code/modules/jobs/job_types/medical.dm @@ -48,6 +48,14 @@ Chief Medical Officer chameleon_extras = list(/obj/item/gun/syringe, /obj/item/stamp/cmo) +/datum/outfit/job/cmo/hardsuit + name = "Chief Medical Officer (Hardsuit)" + + mask = /obj/item/clothing/mask/breath + suit = /obj/item/clothing/suit/space/hardsuit/medical + suit_store = /obj/item/tank/internals/oxygen + r_pocket = /obj/item/flashlight/pen + /* Medical Doctor */ diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm index 2b4ce275b3..c69a5873b1 100644 --- a/code/modules/jobs/job_types/security.dm +++ b/code/modules/jobs/job_types/security.dm @@ -62,6 +62,14 @@ Head of Security chameleon_extras = list(/obj/item/gun/energy/e_gun/hos, /obj/item/stamp/hos) +/datum/outfit/job/hos/hardsuit + name = "Head of Security (Hardsuit)" + + mask = /obj/item/clothing/mask/gas/sechailer + suit = /obj/item/clothing/suit/space/hardsuit/security/hos + suit_store = /obj/item/tank/internals/oxygen + backpack_contents = list(/obj/item/melee/baton/loaded=1, /obj/item/gun/energy/e_gun=1) + /* Warden */ diff --git a/code/modules/jobs/job_types/silicon.dm b/code/modules/jobs/job_types/silicon.dm index 0738f20b24..150372de01 100644 --- a/code/modules/jobs/job_types/silicon.dm +++ b/code/modules/jobs/job_types/silicon.dm @@ -17,7 +17,7 @@ AI exp_type_department = EXP_TYPE_SILICON var/do_special_check = TRUE -/datum/job/ai/equip(mob/living/carbon/human/H, visualsOnly, announce, latejoin) +/datum/job/ai/equip(mob/living/carbon/human/H, visualsOnly, announce, latejoin, outfit_override) . = H.AIize(latejoin) /datum/job/ai/after_spawn(mob/H, mob/M, latejoin) @@ -81,7 +81,7 @@ Cyborg exp_requirements = 120 exp_type = EXP_TYPE_CREW -/datum/job/cyborg/equip(mob/living/carbon/human/H, visualsOnly = FALSE, announce = TRUE, latejoin = FALSE) +/datum/job/cyborg/equip(mob/living/carbon/human/H, visualsOnly = FALSE, announce = TRUE, latejoin = FALSE, outfit_override = null) return H.Robotize(FALSE, latejoin) /datum/job/cyborg/after_spawn(mob/living/silicon/robot/R, mob/M) diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 81e296e4c8..8ae63a8a76 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -166,11 +166,12 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums /obj/machinery/computer/libraryconsole/bookmanagement name = "book inventory management console" desc = "Librarian's command station." - var/arcanecheckout = 0 screenstate = 0 // 0 - Main Menu, 1 - Inventory, 2 - Checked Out, 3 - Check Out a Book verb_say = "beeps" verb_ask = "beeps" verb_exclaim = "beeps" + pass_flags = PASSTABLE + var/arcanecheckout = 0 var/buffer_book var/buffer_mob var/upload_category = "Fiction" @@ -422,8 +423,9 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums var/sqlauthor = sanitizeSQL(scanner.cache.author) var/sqlcontent = sanitizeSQL(scanner.cache.dat) var/sqlcategory = sanitizeSQL(upload_category) + var/sqlckey = sanitizeSQL(usr.ckey) var/msg = "[key_name(usr)] has uploaded the book titled [scanner.cache.name], [length(scanner.cache.dat)] signs" - var/datum/DBQuery/query_library_upload = SSdbcore.NewQuery("INSERT INTO [format_table_name("library")] (author, title, content, category, ckey, datetime, round_id_created) VALUES ('[sqlauthor]', '[sqltitle]', '[sqlcontent]', '[sqlcategory]', '[usr.ckey]', Now(), '[GLOB.round_id]')") + var/datum/DBQuery/query_library_upload = SSdbcore.NewQuery("INSERT INTO [format_table_name("library")] (author, title, content, category, ckey, datetime, round_id_created) VALUES ('[sqlauthor]', '[sqltitle]', '[sqlcontent]', '[sqlcategory]', '[sqlckey]', Now(), '[GLOB.round_id]')") if(!query_library_upload.Execute()) qdel(query_library_upload) alert("Database error encountered uploading to Archive") diff --git a/code/modules/mapping/README.txt b/code/modules/mapping/README.txt new file mode 100644 index 0000000000..75e57efa8b --- /dev/null +++ b/code/modules/mapping/README.txt @@ -0,0 +1,52 @@ +The code in this module originally evolved from dmm_suite and has since been +specialized for SS13 and otherwise tweaked to fit /tg/station's needs. + +dmm_suite version 1.0 + Released January 30th, 2011. + +NOTE: Map saving functionality removed + +defines the object /dmm_suite + - Provides the proc load_map() + - Loads the specified map file onto the specified z-level. + - provides the proc write_map() + - Returns a text string of the map in dmm format + ready for output to a file. + - provides the proc save_map() + - Returns a .dmm file if map is saved + - Returns FALSE if map fails to save + +The dmm_suite provides saving and loading of map files in BYOND's native DMM map +format. It approximates the map saving and loading processes of the Dream Maker +and Dream Seeker programs so as to allow editing, saving, and loading of maps at +runtime. + +------------------------ + +To save a map at runtime, create an instance of /dmm_suite, and then call +write_map(), which accepts three arguments: + - A turf representing one corner of a three dimensional grid (Required). + - Another turf representing the other corner of the same grid (Required). + - Any, or a combination, of several bit flags (Optional, see documentation). + +The order in which the turfs are supplied does not matter, the /dmm_writer will +determine the grid containing both, in much the same way as DM's block() function. +write_map() will then return a string representing the saved map in dmm format; +this string can then be saved to a file, or used for any other purose. + +------------------------ + +To load a map at runtime, create an instance of /dmm_suite, and then call load_map(), +which accepts two arguments: + - A .dmm file to load (Required). + - A number representing the z-level on which to start loading the map (Optional). + +The /dmm_suite will load the map file starting on the specified z-level. If no +z-level was specified, world.maxz will be increased so as to fit the map. Note +that if you wish to load a map onto a z-level that already has objects on it, +you will have to handle the removal of those objects. Otherwise the new map will +simply load the new objects on top of the old ones. + +Also note that all type paths specified in the .dmm file must exist in the world's +code, and that the /dmm_reader trusts that files to be loaded are in fact valid +.dmm files. Errors in the .dmm format will cause runtime errors. diff --git a/code/modules/mapping/dmm_suite.dm b/code/modules/mapping/dmm_suite.dm deleted file mode 100644 index 625350b3ad..0000000000 --- a/code/modules/mapping/dmm_suite.dm +++ /dev/null @@ -1,63 +0,0 @@ -/datum/maploader{ - /* - - dmm_suite version 1.0 - Released January 30th, 2011. - - NOTE: Map saving functionality removed - - defines the object /dmm_suite - - Provides the proc load_map() - - Loads the specified map file onto the specified z-level. - - provides the proc write_map() - - Returns a text string of the map in dmm format - ready for output to a file. - - provides the proc save_map() - - Returns a .dmm file if map is saved - - Returns FALSE if map fails to save - - The dmm_suite provides saving and loading of map files in BYOND's native DMM map - format. It approximates the map saving and loading processes of the Dream Maker - and Dream Seeker programs so as to allow editing, saving, and loading of maps at - runtime. - - ------------------------ - - To save a map at runtime, create an instance of /dmm_suite, and then call - write_map(), which accepts three arguments: - - A turf representing one corner of a three dimensional grid (Required). - - Another turf representing the other corner of the same grid (Required). - - Any, or a combination, of several bit flags (Optional, see documentation). - - The order in which the turfs are supplied does not matter, the /dmm_writer will - determine the grid containing both, in much the same way as DM's block() function. - write_map() will then return a string representing the saved map in dmm format; - this string can then be saved to a file, or used for any other purose. - - ------------------------ - - To load a map at runtime, create an instance of /dmm_suite, and then call load_map(), - which accepts two arguments: - - A .dmm file to load (Required). - - A number representing the z-level on which to start loading the map (Optional). - - The /dmm_suite will load the map file starting on the specified z-level. If no - z-level was specified, world.maxz will be increased so as to fit the map. Note - that if you wish to load a map onto a z-level that already has objects on it, - you will have to handle the removal of those objects. Otherwise the new map will - simply load the new objects on top of the old ones. - - Also note that all type paths specified in the .dmm file must exist in the world's - code, and that the /dmm_reader trusts that files to be loaded are in fact valid - .dmm files. Errors in the .dmm format will cause runtime errors. - - */ - - verb/load_map(var/dmm_file as file, var/x_offset as num, var/y_offset as num, var/z_offset as num, var/cropMap as num, var/measureOnly as num, no_changeturf as num){ - // dmm_file: A .dmm file to load (Required). - // z_offset: A number representing the z-level on which to start loading the map (Optional). - // cropMap: When true, the map will be cropped to fit the existing world dimensions (Optional). - // measureOnly: When true, no changes will be made to the world (Optional). - // no_changeturf: When true, turf/AfterChange won't be called on loaded turfs - } -} \ No newline at end of file diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index 295efe339f..df8423ad66 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -4,7 +4,6 @@ var/height = 0 var/mappath = null var/loaded = 0 // Times loaded this round - var/static/datum/maploader/maploader = new /datum/map_template/New(path = null, rename = null) if(path) @@ -15,14 +14,14 @@ name = rename /datum/map_template/proc/preload_size(path) - var/datum/parsed_map/parsed = maploader.load_map(file(path), 1, 1, 1, cropMap=FALSE, measureOnly=TRUE) + var/datum/parsed_map/parsed = load_map(file(path), 1, 1, 1, cropMap=FALSE, measureOnly=TRUE) var/bounds = parsed?.bounds if(bounds) width = bounds[MAP_MAXX] // Assumes all templates are rectangular, have a single Z level, and begin at 1,1,1 height = bounds[MAP_MAXY] return bounds -/datum/map_template/proc/initTemplateBounds(var/list/bounds) +/datum/parsed_map/proc/initTemplateBounds() var/list/obj/machinery/atmospherics/atmos_machines = list() var/list/obj/structure/cable/cables = list() var/list/atom/atoms = list() @@ -54,7 +53,7 @@ var/y = round((world.maxy - height)/2) var/datum/space_level/level = SSmapping.add_new_zlevel(name, list(ZTRAIT_AWAY = TRUE)) - var/datum/parsed_map/parsed = maploader.load_map(file(mappath), x, y, level.z_value, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=TRUE) + var/datum/parsed_map/parsed = load_map(file(mappath), x, y, level.z_value, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=TRUE) var/list/bounds = parsed.bounds if(!bounds) return FALSE @@ -62,7 +61,7 @@ repopulate_sorted_areas() //initialize things that are normally initialized after map load - initTemplateBounds(bounds) + parsed.initTemplateBounds() smooth_zlevel(world.maxz) log_game("Z-level [name] loaded at at [x],[y],[world.maxz]") @@ -78,7 +77,7 @@ if(T.y+height > world.maxy) return - var/datum/parsed_map/parsed = maploader.load_map(file(mappath), T.x, T.y, T.z, cropMap=TRUE, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=TRUE) + var/datum/parsed_map/parsed = load_map(file(mappath), T.x, T.y, T.z, cropMap=TRUE, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=TRUE) var/list/bounds = parsed?.bounds if(!bounds) return @@ -87,7 +86,7 @@ repopulate_sorted_areas() //initialize things that are normally initialized after map load - initTemplateBounds(bounds) + parsed.initTemplateBounds() log_game("[name] loaded at at [T.x],[T.y],[T.z]") return bounds diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm index 6e2829fddb..12c3935e89 100644 --- a/code/modules/mapping/mapping_helpers.dm +++ b/code/modules/mapping/mapping_helpers.dm @@ -150,17 +150,15 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava) var/turf/T = get_turf(src) T.flags_1 |= NO_LAVA_GEN_1 -//Contains the list of planetary z-levels defined by the planet_z helper. -GLOBAL_LIST_EMPTY(z_is_planet) - -/obj/effect/mapping_helpers/planet_z //adds the map it is on to the z_is_planet list +/// Adds the map it is on to the z_is_planet list +/obj/effect/mapping_helpers/planet_z name = "planet z helper" layer = POINT_LAYER /obj/effect/mapping_helpers/planet_z/Initialize() . = ..() - var/turf/T = get_turf(src) - GLOB.z_is_planet["[T.z]"] = TRUE + var/datum/space_level/S = SSmapping.get_level(z) + S.traits[ZTRAIT_PLANET] = TRUE //This helper applies components to things on the map directly. diff --git a/code/modules/mapping/reader.dm b/code/modules/mapping/reader.dm index 98da8a41b1..5b7ae33556 100644 --- a/code/modules/mapping/reader.dm +++ b/code/modules/mapping/reader.dm @@ -10,77 +10,57 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) var/xcrd var/ycrd var/zcrd - var/xcrdStart var/gridLines /datum/parsed_map + var/original_path + var/key_len = 0 var/list/grid_models = list() var/list/gridSets = list() - var/list/bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) - var/key_len = 0 -/datum/parsed_map/proc/initTemplateBounds() - var/list/obj/machinery/atmospherics/atmos_machines = list() - var/list/obj/structure/cable/cables = list() - var/list/atom/atoms = list() - - var/list/turfs = block( locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), - locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ])) - var/list/border = block(locate(max(bounds[MAP_MINX]-1, 1), max(bounds[MAP_MINY]-1, 1), bounds[MAP_MINZ]), - locate(min(bounds[MAP_MAXX]+1, world.maxx), min(bounds[MAP_MAXY]+1, world.maxy), bounds[MAP_MAXZ])) - turfs - for(var/L in turfs) - var/turf/B = L - atoms += B - for(var/A in B) - atoms += A - if(istype(A, /obj/structure/cable)) - cables += A - continue - if(istype(A, /obj/machinery/atmospherics)) - atmos_machines += A - for(var/L in border) - var/turf/T = L - T.air_update_turf(TRUE) //calculate adjacent turfs along the border to prevent runtimes - - SSatoms.InitializeAtoms(atoms) - SSmachines.setup_template_powernets(cables) - SSair.setup_template_machinery(atmos_machines) - -/datum/maploader - // /"([a-zA-Z]+)" = \(((?:.|\n)*?)\)\n(?!\t)|\((\d+),(\d+),(\d+)\) = \{"([a-zA-Z\n]*)"\}/g - var/static/regex/dmmRegex = new/regex({""(\[a-zA-Z]+)" = \\(((?:.|\n)*?)\\)\n(?!\t)|\\((\\d+),(\\d+),(\\d+)\\) = \\{"(\[a-zA-Z\n]*)"\\}"}, "g") - // /^[\s\n]+"?|"?[\s\n]+$|^"|"$/g - var/static/regex/trimQuotesRegex = new/regex({"^\[\\s\n]+"?|"?\[\\s\n]+$|^"|"$"}, "g") - // /^[\s\n]+|[\s\n]+$/ - var/static/regex/trimRegex = new/regex("^\[\\s\n]+|\[\\s\n]+$", "g") - #ifdef TESTING - var/turfsSkipped - #endif + var/list/modelCache + var/list/bad_paths + + /// Unoffset bounds. Null on parse failure. + var/list/parsed_bounds + /// Offset bounds. Same as parsed_bounds until load(). + var/list/bounds + + // raw strings used to represent regexes more accurately + // '' used to avoid confusing syntax highlighting + var/static/regex/dmmRegex = new(@'"([a-zA-Z]+)" = \(((?:.|\n)*?)\)\n(?!\t)|\((\d+),(\d+),(\d+)\) = \{"([a-zA-Z\n]*)"\}', "g") + var/static/regex/trimQuotesRegex = new(@'^[\s\n]+"?|"?[\s\n]+$|^"|"$', "g") + var/static/regex/trimRegex = new(@'^[\s\n]+|[\s\n]+$', "g") -/** - * Construct the model map and control the loading process - * - * WORKING : - * - * 1) Makes an associative mapping of model_keys with model - * e.g aa = /turf/unsimulated/wall{icon_state = "rock"} - * 2) Read the map line by line, parsing the result (using parse_grid) - * - */ -/datum/maploader/load_map(dmm_file as file, x_offset as num, y_offset as num, z_offset as num, cropMap as num, measureOnly as num, no_changeturf as num, lower_crop_x as num, lower_crop_y as num, upper_crop_x as num, upper_crop_y as num, placeOnTop as num) - //How I wish for RAII - Master.StartLoadingMap() - #ifdef TESTING - turfsSkipped = 0 - #endif - . = load_map_impl(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, lower_crop_x, upper_crop_x, lower_crop_y, upper_crop_y, placeOnTop) #ifdef TESTING - if(turfsSkipped) - testing("Skipped loading [turfsSkipped] default turfs") + var/turfsSkipped = 0 #endif - Master.StopLoadingMap() -/datum/parsed_map/New(tfile, x_offset, y_offset, z_offset, x_lower, x_upper, y_lower, y_upper, measureOnly, regex/dmmRegex, cropMap) +/// Shortcut function to parse a map and apply it to the world. +/// +/// - dmm_file: A .dmm file to load (Required). +/// - x_offset, y_offset, z_offset: Positions representign where to load the map (Optional). +/// - cropMap: When true, the map will be cropped to fit the existing world dimensions (Optional). +/// - measureOnly: When true, no changes will be made to the world (Optional). +/// - no_changeturf: When true, turf/AfterChange won't be called on loaded turfs +/// - x_lower, x_upper, y_lower, y_upper: Coordinates (relative to the map) to crop to (Optional). +/// - placeOnTop: Whether to use turf/PlaceOnTop rather than turf/ChangeTurf (Optional). +/proc/load_map(dmm_file as file, x_offset as num, y_offset as num, z_offset as num, cropMap as num, measureOnly as num, no_changeturf as num, x_lower = -INFINITY as num, x_upper = INFINITY as num, y_lower = -INFINITY as num, y_upper = INFINITY as num, placeOnTop = FALSE as num) + var/datum/parsed_map/parsed = new(dmm_file, x_lower, x_upper, y_lower, y_upper, measureOnly) + if(parsed.bounds && !measureOnly) + parsed.load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop) + return parsed + +/// Parse a map, possibly cropping it. +/datum/parsed_map/New(tfile, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper=INFINITY, measureOnly=FALSE) + if(isfile(tfile)) + original_path = "[tfile]" + tfile = file2text(tfile) + else if(isnull(tfile)) + // create a new datum without loading a map + return + + bounds = parsed_bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) var/stored_index = 1 //multiz lool @@ -112,12 +92,12 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) var/datum/grid_set/gridSet = new - gridSet.xcrdStart = curr_x + x_offset - 1 + gridSet.xcrd = curr_x //position of the currently processed square - gridSet.ycrd = text2num(dmmRegex.group[4]) + y_offset - 1 - gridSet.zcrd = text2num(dmmRegex.group[5]) + z_offset - 1 + gridSet.ycrd = text2num(dmmRegex.group[4]) + gridSet.zcrd = text2num(dmmRegex.group[5]) - bounds[MAP_MINX] = min(bounds[MAP_MINX], CLAMP(gridSet.xcrdStart, x_lower, x_upper)) + bounds[MAP_MINX] = min(bounds[MAP_MINX], CLAMP(gridSet.xcrd, x_lower, x_upper)) bounds[MAP_MINZ] = min(bounds[MAP_MINZ], gridSet.zcrd) bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], gridSet.zcrd) @@ -139,103 +119,110 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) bounds[MAP_MINY] = min(bounds[MAP_MINY], CLAMP(gridSet.ycrd, y_lower, y_upper)) gridSet.ycrd += gridLines.len - 1 // Start at the top and work down + bounds[MAP_MAXY] = max(bounds[MAP_MAXY], CLAMP(gridSet.ycrd, y_lower, y_upper)) - if(!cropMap && gridSet.ycrd > world.maxy) - bounds[MAP_MAXY] = max(bounds[MAP_MAXY], CLAMP(gridSet.ycrd, y_lower, y_upper)) - else - bounds[MAP_MAXY] = max(bounds[MAP_MAXY], CLAMP(min(gridSet.ycrd, world.maxy), y_lower, y_upper)) - - var/maxx = gridSet.xcrdStart + var/maxx = gridSet.xcrd if(gridLines.len) //Not an empty map - maxx = max(maxx, gridSet.xcrdStart + length(gridLines[1]) / key_len - 1) + maxx = max(maxx, gridSet.xcrd + length(gridLines[1]) / key_len - 1) - bounds[MAP_MAXX] = CLAMP(max(bounds[MAP_MAXX], cropMap ? min(maxx, world.maxx) : maxx), x_lower, x_upper) + bounds[MAP_MAXX] = CLAMP(max(bounds[MAP_MAXX], maxx), x_lower, x_upper) CHECK_TICK -/datum/maploader/proc/load_map_impl(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, placeOnTop = FALSE) - var/tfile = dmm_file//the map file we're creating - if(isfile(tfile)) - tfile = file2text(tfile) + // Indicate failure to parse any coordinates by nulling bounds + if(bounds[1] == 1.#INF) + bounds = null + parsed_bounds = bounds - if(!x_offset) - x_offset = 1 - if(!y_offset) - y_offset = 1 - if(!z_offset) - z_offset = world.maxz + 1 - - var/datum/parsed_map/parsed = new(tfile, x_offset, y_offset, z_offset, x_lower, x_upper, y_lower, y_upper, measureOnly, dmmRegex, cropMap) +/// Load the parsed map into the world. See /proc/load_map for arguments. +/datum/parsed_map/proc/load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop) + //How I wish for RAII + Master.StartLoadingMap() + . = _load_impl(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop) + Master.StopLoadingMap() - var/list/modelCache - var/space_key - if(!measureOnly) - modelCache = build_cache(parsed, no_changeturf) - space_key = modelCache[SPACE_KEY] +// Do not call except via load() above. +/datum/parsed_map/proc/_load_impl(x_offset = 1, y_offset = 1, z_offset = world.maxz + 1, cropMap = FALSE, no_changeturf = FALSE, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, placeOnTop = FALSE) + var/list/modelCache = build_cache(no_changeturf) + var/space_key = modelCache[SPACE_KEY] + var/list/bounds + src.bounds = bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) - for(var/I in parsed.gridSets) + for(var/I in gridSets) var/datum/grid_set/gset = I - if(!cropMap && !measureOnly && gset.ycrd > world.maxy) - world.maxy = gset.ycrd // Expand Y here. X is expanded in the loop below - var/zexpansion = gset.zcrd > world.maxz - if(zexpansion && !measureOnly) + var/ycrd = gset.ycrd + y_offset - 1 + var/zcrd = gset.zcrd + z_offset - 1 + if(!cropMap && ycrd > world.maxy) + world.maxy = ycrd // Expand Y here. X is expanded in the loop below + var/zexpansion = zcrd > world.maxz + if(zexpansion) if(cropMap) continue else - while (gset.zcrd > world.maxz) //create a new z_level if needed + while (zcrd > world.maxz) //create a new z_level if needed world.incrementMaxZ() if(!no_changeturf) WARNING("Z-level expansion occurred without no_changeturf set, this may cause problems when /turf/AfterChange is called") - var/maxx = gset.xcrdStart - if(!measureOnly) - for(var/line in gset.gridLines) - if((gset.ycrd - y_offset + 1) < y_lower || (gset.ycrd - y_offset + 1) > y_upper) //Reverse operation and check if it is out of bounds of cropping. - --gset.ycrd - continue - if(gset.ycrd <= world.maxy && gset.ycrd >= 1) - gset.xcrd = gset.xcrdStart - for(var/tpos = 1 to length(line) - parsed.key_len + 1 step parsed.key_len) - if((gset.xcrd - x_offset + 1) < x_lower || (gset.xcrd - x_offset + 1) > x_upper) //Same as above. - ++gset.xcrd - continue //X cropping. - if(gset.xcrd > world.maxx) - if(cropMap) - break - else - world.maxx = gset.xcrd - - if(gset.xcrd >= 1) - var/model_key = copytext(line, tpos, tpos + parsed.key_len) - var/no_afterchange = no_changeturf || zexpansion - if(!no_afterchange || (model_key != space_key)) - var/list/cache = modelCache[model_key] - if(!cache) - CRASH("Undefined model key in DMM: [model_key]") - build_coordinate(cache, gset.xcrd, gset.ycrd, gset.zcrd, no_afterchange, placeOnTop) - #ifdef TESTING - else - ++turfsSkipped - #endif - CHECK_TICK - maxx = max(maxx, gset.xcrd) - ++gset.xcrd - --gset.ycrd + for(var/line in gset.gridLines) + if((ycrd - y_offset + 1) < y_lower || (ycrd - y_offset + 1) > y_upper) //Reverse operation and check if it is out of bounds of cropping. + --ycrd + continue + if(ycrd <= world.maxy && ycrd >= 1) + var/xcrd = gset.xcrd + x_offset - 1 + for(var/tpos = 1 to length(line) - key_len + 1 step key_len) + if((xcrd - x_offset + 1) < x_lower || (xcrd - x_offset + 1) > x_upper) //Same as above. + ++xcrd + continue //X cropping. + if(xcrd > world.maxx) + if(cropMap) + break + else + world.maxx = xcrd + + if(xcrd >= 1) + var/model_key = copytext(line, tpos, tpos + key_len) + var/no_afterchange = no_changeturf || zexpansion + if(!no_afterchange || (model_key != space_key)) + var/list/cache = modelCache[model_key] + if(!cache) + CRASH("Undefined model key in DMM: [model_key]") + build_coordinate(cache, xcrd, ycrd, zcrd, no_afterchange, placeOnTop) + + // only bother with bounds that actually exist + bounds[MAP_MINX] = min(bounds[MAP_MINX], xcrd) + bounds[MAP_MINY] = min(bounds[MAP_MINY], ycrd) + bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd) + bounds[MAP_MAXX] = max(bounds[MAP_MAXX], xcrd) + bounds[MAP_MAXY] = max(bounds[MAP_MAXY], ycrd) + bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd) + #ifdef TESTING + else + ++turfsSkipped + #endif + CHECK_TICK + ++xcrd + --ycrd CHECK_TICK - var/list/bounds = parsed.bounds - if(bounds[1] == 1.#INF) // Shouldn't need to check every item - parsed.bounds = null - else if(!measureOnly && !no_changeturf) + if(!no_changeturf) for(var/t in block(locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]))) var/turf/T = t //we do this after we load everything in. if we don't; we'll have weird atmos bugs regarding atmos adjacent turfs T.AfterChange(CHANGETURF_IGNORE_AIR) - return parsed -/datum/maploader/proc/build_cache(datum/parsed_map/parsed, no_changeturf) - . = list() - var/list/grid_models = parsed.grid_models + #ifdef TESTING + if(turfsSkipped) + testing("Skipped loading [turfsSkipped] default turfs") + #endif + + return TRUE + +/datum/parsed_map/proc/build_cache(no_changeturf) + if(modelCache) + return modelCache + . = modelCache = list() + var/list/grid_models = src.grid_models for(var/model_key in grid_models) var/model = grid_models[model_key] var/list/members = list() //will contain all members (paths) in model (in our example : /turf/unsimulated/wall and /area/mine/explored) @@ -249,16 +236,18 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) var/old_position = 1 var/dpos - do + while(dpos != 0) //finding next member (e.g /turf/unsimulated/wall{icon_state = "rock"} or /area/mine/explored) dpos = find_next_delimiter_position(model, old_position, ",", "{", "}") //find next delimiter (comma here) that's not within {...} var/full_def = trim_text(copytext(model, old_position, dpos)) //full definition, e.g : /obj/foo/bar{variables=derp} var/variables_start = findtext(full_def, "{") - var/atom_def = text2path(trim_text(copytext(full_def, 1, variables_start))) //path definition, e.g /obj/foo/bar + var/path_text = trim_text(copytext(full_def, 1, variables_start)) + var/atom_def = text2path(path_text) //path definition, e.g /obj/foo/bar old_position = dpos + 1 if(!atom_def) // Skip the item if the path does not exist. Fix your crap, mappers! + LAZYADD(bad_paths, path_text) continue members.Add(atom_def) @@ -281,7 +270,6 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) members_attributes[index++] = fields CHECK_TICK - while(dpos != 0) //check and see if we can just skip this turf //So you don't have to understand this horrid statement, we can do this if @@ -307,7 +295,7 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) .[model_key] = list(members, members_attributes) -/datum/maploader/proc/build_coordinate(list/model, xcrd as num, ycrd as num, zcrd as num, no_changeturf as num, placeOnTop as num) +/datum/parsed_map/proc/build_coordinate(list/model, xcrd as num, ycrd as num, zcrd as num, no_changeturf as num, placeOnTop as num) var/index var/list/members = model[1] var/list/members_attributes = model[2] @@ -370,7 +358,7 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) //////////////// //Instance an atom at (x,y,z) and gives it the variables in attributes -/datum/maploader/proc/instance_atom(path,list/attributes, turf/crds, no_changeturf, placeOnTop) +/datum/parsed_map/proc/instance_atom(path,list/attributes, turf/crds, no_changeturf, placeOnTop) GLOB._preloader.setup(attributes, path) if(crds) @@ -393,13 +381,13 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) stoplag() SSatoms.map_loader_begin() -/datum/maploader/proc/create_atom(path, crds) +/datum/parsed_map/proc/create_atom(path, crds) set waitfor = FALSE . = new path (crds) //text trimming (both directions) helper proc //optionally removes quotes before and after the text (for variable name) -/datum/maploader/proc/trim_text(what as text,trim_quotes=0) +/datum/parsed_map/proc/trim_text(what as text,trim_quotes=0) if(trim_quotes) return trimQuotesRegex.Replace(what, "") else @@ -408,7 +396,7 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) //find the position of the next delimiter,skipping whatever is comprised between opening_escape and closing_escape //returns 0 if reached the last delimiter -/datum/maploader/proc/find_next_delimiter_position(text as text,initial_position as num, delimiter=",",opening_escape="\"",closing_escape="\"") +/datum/parsed_map/proc/find_next_delimiter_position(text as text,initial_position as num, delimiter=",",opening_escape="\"",closing_escape="\"") var/position = initial_position var/next_delimiter = findtext(text,delimiter,position,0) var/next_opening = findtext(text,opening_escape,position,0) @@ -423,7 +411,7 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) //build a list from variables in text form (e.g {var1="derp"; var2; var3=7} => list(var1="derp", var2, var3=7)) //return the filled list -/datum/maploader/proc/readlist(text as text, delimiter=",") +/datum/parsed_map/proc/readlist(text as text, delimiter=",") var/list/to_return = list() @@ -476,7 +464,7 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) return to_return -/datum/maploader/Destroy() +/datum/parsed_map/Destroy() ..() return QDEL_HINT_HARDDEL_NOW @@ -496,12 +484,12 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) target_path = path /datum/map_preloader/proc/load(atom/what) + GLOB.use_preloader = FALSE for(var/attribute in attributes) var/value = attributes[attribute] if(islist(value)) value = deepCopyList(value) what.vars[attribute] = value - GLOB.use_preloader = FALSE /area/template_noop name = "Area Passthrough" diff --git a/code/modules/mapping/space_management/space_reservation.dm b/code/modules/mapping/space_management/space_reservation.dm index 83147d5df7..f1b3b1ccdc 100644 --- a/code/modules/mapping/space_management/space_reservation.dm +++ b/code/modules/mapping/space_management/space_reservation.dm @@ -3,6 +3,8 @@ //Yes, I'm sorry. /datum/turf_reservation var/list/reserved_turfs = list() + var/width = 0 + var/height = 0 var/bottom_left_coords[3] var/top_right_coords[3] var/wipe_reservation_on_release = TRUE @@ -59,6 +61,8 @@ SSmapping.unused_turfs["[T.z]"] -= T SSmapping.used_turfs[T] = src T.ChangeTurf(turf_type, turf_type) + src.width = width + src.height = height return TRUE /datum/turf_reservation/New() diff --git a/code/modules/mining/aux_base.dm b/code/modules/mining/aux_base.dm index 2c001571a1..e9233923cc 100644 --- a/code/modules/mining/aux_base.dm +++ b/code/modules/mining/aux_base.dm @@ -239,7 +239,6 @@ interface with the mining shuttle at the landing site if a mobile beacon is also /obj/docking_port/mobile/auxillary_base name = "auxillary base" id = "colony_drop" - timid = FALSE //Reminder to map-makers to set these values equal to the size of your base. dheight = 4 dwidth = 4 diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index 61d439667d..a905a3baa9 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -61,7 +61,7 @@ icon_state = "hostile_env" item_state = "hostile_env" clothing_flags = THICKMATERIAL //not spaceproof - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | LAVA_PROOF slowdown = 0 armor = list("melee" = 70, "bullet" = 40, "laser" = 10, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) @@ -91,7 +91,7 @@ icon_state = "hostile_env" item_state = "hostile_env" w_class = WEIGHT_CLASS_NORMAL - max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT clothing_flags = THICKMATERIAL // no space protection armor = list("melee" = 70, "bullet" = 40, "laser" = 10, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) resistance_flags = FIRE_PROOF | LAVA_PROOF diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index e50370ff44..d6e99f7361 100644 --- a/code/modules/mining/equipment/regenerative_core.dm +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -63,7 +63,7 @@ /obj/item/organ/regenerative_core/on_life() ..() - if(owner.health < owner.crit_modifier()) + if(owner.health < owner.crit_threshold) ui_action_click() /obj/item/organ/regenerative_core/afterattack(atom/target, mob/user, proximity_flag) diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index 3005a29dcd..715ecc906a 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -175,8 +175,6 @@ desc = "A heated storage unit." icon_state = "donkvendor" icon = 'icons/obj/lavaland/donkvendor.dmi' - icon_on = "donkvendor" - icon_off = "donkvendor" light_range = 5 light_power = 1.2 light_color = "#DDFFD3" @@ -185,6 +183,9 @@ flags_1 = NODECONSTRUCT_1 var/empty = FALSE +/obj/machinery/smartfridge/survival_pod/update_icon() + return + /obj/machinery/smartfridge/survival_pod/Initialize(mapload) . = ..() if(empty) @@ -247,11 +248,6 @@ . = ..() air_update_turf(1) -/obj/structure/fans/Destroy() - var/turf/T = loc - . = ..() - T.air_update_turf(1) - //Inivisible, indestructible fans /obj/structure/fans/tiny/invisible name = "air flow blocker" diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm index 765f9d92e0..621a6afe23 100644 --- a/code/modules/mining/laborcamp/laborstacker.dm +++ b/code/modules/mining/laborcamp/laborstacker.dm @@ -135,6 +135,7 @@ GLOBAL_LIST(labor_sheet_values) /obj/machinery/mineral/stacking_machine/laborstacker + force_connect = TRUE var/points = 0 //The unclaimed value of ore stacked. /obj/machinery/mineral/stacking_machine/laborstacker/process_sheet(obj/item/stack/sheet/inp) diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index cc50c0f392..0113c55ed1 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -1315,3 +1315,18 @@ for(var/t in RANGE_TURFS(1, T)) var/obj/effect/temp_visual/hierophant/blast/B = new(t, user, friendly_fire_check) B.damage = 15 //keeps monster damage boost due to lower damage + + +//Just some minor stuff +/obj/structure/closet/crate/necropolis/puzzle + name = "puzzling chest" + +/obj/structure/closet/crate/necropolis/puzzle/PopulateContents() + var/loot = rand(1,3) + switch(loot) + if(1) + new /obj/item/soulstone/anybody(src) + if(2) + new /obj/item/wisp_lantern(src) + if(3) + new /obj/item/prisoncube(src) \ No newline at end of file diff --git a/code/modules/mining/lavaland/ruins/gym.dm b/code/modules/mining/lavaland/ruins/gym.dm index 634c2df859..1c535fd9ab 100644 --- a/code/modules/mining/lavaland/ruins/gym.dm +++ b/code/modules/mining/lavaland/ruins/gym.dm @@ -16,17 +16,20 @@ playsound(loc, pick(hit_sounds), 25, 1, -1) if(isliving(user)) var/mob/living/L = user + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "exercise", /datum/mood_event/exercise) L.apply_status_effect(STATUS_EFFECT_EXERCISED) -/obj/structure/stacklifter +/obj/structure/weightmachine name = "Weight Machine" desc = "Just looking at this thing makes you feel tired." - icon = 'goon/icons/obj/fitness.dmi' - icon_state = "fitnesslifter" density = TRUE anchored = TRUE + var/icon_state_inuse + +/obj/structure/weightmachine/proc/AnimateMachine(mob/living/user) + return -/obj/structure/stacklifter/attack_hand(mob/living/user) +/obj/structure/weightmachine/attack_hand(mob/living/user) . = ..() if(.) return @@ -35,76 +38,58 @@ return else obj_flags |= IN_USE - icon_state = "fitnesslifter2" + icon_state = icon_state_inuse user.setDir(SOUTH) user.Stun(80) user.forceMove(src.loc) var/bragmessage = pick("pushing it to the limit","going into overdrive","burning with determination","rising up to the challenge", "getting strong now","getting ripped") user.visible_message("[user] is [bragmessage]!") - var/lifts = 0 - while (lifts++ < 6) - if (user.loc != src.loc) - break - sleep(3) - animate(user, pixel_y = -2, time = 3) - sleep(3) - animate(user, pixel_y = -4, time = 3) - sleep(3) - playsound(user, 'goon/sound/effects/spring.ogg', 60, 1) + AnimateMachine(user) playsound(user, 'sound/machines/click.ogg', 60, 1) obj_flags &= ~IN_USE user.pixel_y = 0 var/finishmessage = pick("You feel stronger!","You feel like you can take on the world!","You feel robust!","You feel indestructible!") - icon_state = "fitnesslifter" + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "exercise", /datum/mood_event/exercise) + icon_state = initial(icon_state) to_chat(user, finishmessage) user.apply_status_effect(STATUS_EFFECT_EXERCISED) -/obj/structure/weightlifter - name = "Weight Machine" - desc = "Just looking at this thing makes you feel tired." +/obj/structure/weightmachine/stacklifter icon = 'goon/icons/obj/fitness.dmi' - icon_state = "fitnessweight" - density = TRUE - anchored = TRUE - -/obj/structure/weightlifter/attack_hand(mob/living/user) - . = ..() - if(.) - return - if(obj_flags & IN_USE) - to_chat(user, "It's already in use - wait a bit.") - return - else - obj_flags |= IN_USE - icon_state = "fitnessweight-c" - user.setDir(SOUTH) - user.Stun(80) - user.forceMove(src.loc) - var/mutable_appearance/swole_overlay = mutable_appearance(icon, "fitnessweight-w", WALL_OBJ_LAYER) - add_overlay(swole_overlay) - var/bragmessage = pick("pushing it to the limit","going into overdrive","burning with determination","rising up to the challenge", "getting strong now","getting ripped") - user.visible_message("[user] is [bragmessage]!") - var/reps = 0 - user.pixel_y = 5 - while (reps++ < 6) - if (user.loc != src.loc) - break - - for (var/innerReps = max(reps, 1), innerReps > 0, innerReps--) - sleep(3) - animate(user, pixel_y = (user.pixel_y == 3) ? 5 : 3, time = 3) - - playsound(user, 'goon/sound/effects/spring.ogg', 60, 1) + icon_state = "fitnesslifter" + icon_state_inuse = "fitnesslifter2" +/obj/structure/weightmachine/stacklifter/AnimateMachine(mob/living/user) + var/lifts = 0 + while (lifts++ < 6) + if (user.loc != src.loc) + break sleep(3) - animate(user, pixel_y = 2, time = 3) + animate(user, pixel_y = -2, time = 3) sleep(3) - playsound(user, 'sound/machines/click.ogg', 60, 1) - obj_flags &= ~IN_USE - animate(user, pixel_y = 0, time = 3) - var/finishmessage = pick("You feel stronger!","You feel like you can take on the world!","You feel robust!","You feel indestructible!") - icon_state = "fitnessweight" - cut_overlay(swole_overlay) - to_chat(user, "[finishmessage]") - user.apply_status_effect(STATUS_EFFECT_EXERCISED) \ No newline at end of file + animate(user, pixel_y = -4, time = 3) + sleep(3) + playsound(user, 'goon/sound/effects/spring.ogg', 60, 1) + +/obj/structure/weightmachine/weightlifter + icon = 'goon/icons/obj/fitness.dmi' + icon_state = "fitnessweight" + icon_state_inuse = "fitnessweight-c" + +/obj/structure/weightmachine/weightlifter/AnimateMachine(mob/living/user) + var/mutable_appearance/swole_overlay = mutable_appearance(icon, "fitnessweight-w", WALL_OBJ_LAYER) + add_overlay(swole_overlay) + var/reps = 0 + user.pixel_y = 5 + while (reps++ < 6) + if (user.loc != src.loc) + break + for (var/innerReps = max(reps, 1), innerReps > 0, innerReps--) + sleep(3) + animate(user, pixel_y = (user.pixel_y == 3) ? 5 : 3, time = 3) + playsound(user, 'goon/sound/effects/spring.ogg', 60, 1) + sleep(3) + animate(user, pixel_y = 2, time = 3) + sleep(3) + cut_overlay(swole_overlay) \ No newline at end of file diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index 3529214609..ce569ec055 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -13,7 +13,6 @@ speed_process = TRUE circuit = /obj/item/circuitboard/machine/ore_redemption layer = BELOW_OBJ_LAYER - var/req_access_reclaim = ACCESS_MINING_STATION var/obj/item/card/id/inserted_id var/points = 0 var/ore_pickup_rate = 15 @@ -24,11 +23,12 @@ var/list/ore_buffer = list() var/datum/techweb/stored_research var/obj/item/disk/design_disk/inserted_disk + var/datum/component/remote_materials/materials -/obj/machinery/mineral/ore_redemption/Initialize() +/obj/machinery/mineral/ore_redemption/Initialize(mapload) . = ..() - AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE),INFINITY, FALSE, list(/obj/item/stack)) stored_research = new /datum/techweb/specialized/autounlocking/smelter + materials = AddComponent(/datum/component/remote_materials, "orm", mapload) /obj/machinery/mineral/ore_redemption/Destroy() QDEL_NULL(stored_research) @@ -49,35 +49,43 @@ sheet_per_ore = sheet_per_ore_temp /obj/machinery/mineral/ore_redemption/proc/smelt_ore(obj/item/stack/ore/O) + var/datum/component/material_container/mat_container = materials.mat_container + if (!mat_container) + return ore_buffer -= O if(O && O.refined_type) points += O.points * point_upgrade * O.amount - GET_COMPONENT(materials, /datum/component/material_container) - var/material_amount = materials.get_item_material_amount(O) + var/material_amount = mat_container.get_item_material_amount(O) if(!material_amount) qdel(O) //no materials, incinerate it - else if(!materials.has_space(material_amount * sheet_per_ore * O.amount)) //if there is no space, eject it + else if(!mat_container.has_space(material_amount * sheet_per_ore * O.amount)) //if there is no space, eject it unload_mineral(O) else - materials.insert_item(O, sheet_per_ore) //insert it + var/mats = O.materials & mat_container.materials + var/amount = O.amount + var/id = inserted_id && inserted_id.registered_name + if (id) + id = " (ID: [id])" + mat_container.insert_item(O, sheet_per_ore) //insert it + materials.silo_log(src, "smelted", amount, "ores[id]", mats) qdel(O) /obj/machinery/mineral/ore_redemption/proc/can_smelt_alloy(datum/design/D) - if(D.make_reagents.len) + var/datum/component/material_container/mat_container = materials.mat_container + if(!mat_container || D.make_reagents.len) return FALSE var/build_amount = 0 - GET_COMPONENT(materials, /datum/component/material_container) for(var/mat_id in D.materials) var/M = D.materials[mat_id] - var/datum/material/redemption_mat = materials.materials[mat_id] + var/datum/material/redemption_mat = mat_container.materials[mat_id] if(!M || !redemption_mat) return FALSE @@ -102,17 +110,18 @@ smelt_ore(ore) /obj/machinery/mineral/ore_redemption/proc/send_console_message() - if(!is_station_level(z)) + var/datum/component/material_container/mat_container = materials.mat_container + if(!mat_container || !is_station_level(z)) return message_sent = TRUE + var/area/A = get_area(src) var/msg = "Now available in [A]:
    " var/has_minerals = FALSE - GET_COMPONENT(materials, /datum/component/material_container) - for(var/mat_id in materials.materials) - var/datum/material/M = materials.materials[mat_id] + for(var/mat_id in mat_container.materials) + var/datum/material/M = mat_container.materials[mat_id] var/mineral_amount = M.amount / MINERAL_MATERIAL_AMOUNT if(mineral_amount) has_minerals = TRUE @@ -126,7 +135,7 @@ D.createmessage("Ore Redemption Machine", "New minerals available!", msg, 1, 0) /obj/machinery/mineral/ore_redemption/process() - if(panel_open || !powered()) + if(!materials.mat_container || panel_open || !powered()) return var/atom/input = get_step(src, input_dir) var/obj/structure/ore_box/OB = locate() in input @@ -147,10 +156,6 @@ send_console_message() /obj/machinery/mineral/ore_redemption/attackby(obj/item/W, mob/user, params) - GET_COMPONENT(materials, /datum/component/material_container) - if(default_pry_open(W)) - materials.retrieve_all() - return if(default_unfasten_wrench(user, W)) return if(default_deconstruction_screwdriver(user, "ore_redemption-open", "ore_redemption", W)) @@ -170,22 +175,18 @@ interact(user) return - if(istype(W, /obj/item/multitool) && panel_open) - input_dir = turn(input_dir, -90) - output_dir = turn(output_dir, -90) - to_chat(user, "You change [src]'s I/O settings, setting the input to [dir2text(input_dir)] and the output to [dir2text(output_dir)].") - return - if(istype(W, /obj/item/disk/design_disk)) if(user.transferItemToLoc(W, src)) inserted_disk = W return TRUE return ..() -/obj/machinery/mineral/ore_redemption/on_deconstruction() - GET_COMPONENT(materials, /datum/component/material_container) - materials.retrieve_all() - ..() +/obj/machinery/mineral/ore_redemption/multitool_act(mob/living/user, obj/item/multitool/I) + if (panel_open) + input_dir = turn(input_dir, -90) + output_dir = turn(output_dir, -90) + to_chat(user, "You change [src]'s I/O settings, setting the input to [dir2text(input_dir)] and the output to [dir2text(output_dir)].") + return TRUE /obj/machinery/mineral/ore_redemption/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) @@ -201,16 +202,25 @@ data["claimedPoints"] = inserted_id.mining_points data["materials"] = list() - GET_COMPONENT(materials, /datum/component/material_container) - for(var/mat_id in materials.materials) - var/datum/material/M = materials.materials[mat_id] - var/sheet_amount = M.amount ? M.amount / MINERAL_MATERIAL_AMOUNT : "0" - data["materials"] += list(list("name" = M.name, "id" = M.id, "amount" = sheet_amount, "value" = ore_values[M.id] * point_upgrade)) - - data["alloys"] = list() - for(var/v in stored_research.researched_designs) - var/datum/design/D = stored_research.researched_designs[v] - data["alloys"] += list(list("name" = D.name, "id" = D.id, "amount" = can_smelt_alloy(D))) + var/datum/component/material_container/mat_container = materials.mat_container + if (mat_container) + for(var/mat_id in mat_container.materials) + var/datum/material/M = mat_container.materials[mat_id] + var/sheet_amount = M.amount ? M.amount / MINERAL_MATERIAL_AMOUNT : "0" + data["materials"] += list(list("name" = M.name, "id" = M.id, "amount" = sheet_amount, "value" = ore_values[M.id] * point_upgrade)) + + data["alloys"] = list() + for(var/v in stored_research.researched_designs) + var/datum/design/D = stored_research.researched_designs[v] + data["alloys"] += list(list("name" = D.name, "id" = D.id, "amount" = can_smelt_alloy(D))) + + if (!mat_container) + data["disconnected"] = "local mineral storage is unavailable" + else if (!materials.silo) + data["disconnected"] = "no ore silo connection is available; storing locally" + else if (materials.on_hold()) + data["disconnected"] = "mineral withdrawal is on hold" + data["diskDesigns"] = list() if(inserted_disk) data["hasDisk"] = TRUE @@ -225,7 +235,7 @@ /obj/machinery/mineral/ore_redemption/ui_act(action, params) if(..()) return - GET_COMPONENT(materials, /datum/component/material_container) + var/datum/component/material_container/mat_container = materials.mat_container switch(action) if("Eject") if(!inserted_id) @@ -248,12 +258,17 @@ points = 0 return TRUE if("Release") - - if(check_access(inserted_id) || allowed(usr)) //Check the ID inside, otherwise check the user + if(!mat_container) + return + if(materials.on_hold()) + to_chat(usr, "Mineral access is on hold, please contact the quartermaster.") + else if(!check_access(inserted_id) && !allowed(usr)) //Check the ID inside, otherwise check the user + to_chat(usr, "Required access not found.") + else var/mat_id = params["id"] - if(!materials.materials[mat_id]) + if(!mat_container.materials[mat_id]) return - var/datum/material/mat = materials.materials[mat_id] + var/datum/material/mat = mat_container.materials[mat_id] var/stored_amount = mat.amount / MINERAL_MATERIAL_AMOUNT if(!stored_amount) @@ -266,10 +281,10 @@ desired = input("How many sheets?", "How many sheets would you like to smelt?", 1) as null|num var/sheets_to_remove = round(min(desired,50,stored_amount)) - materials.retrieve_sheets(sheets_to_remove, mat_id, get_step(src, output_dir)) - - else - to_chat(usr, "Required access not found.") + var/count = mat_container.retrieve_sheets(sheets_to_remove, mat_id, get_step(src, output_dir)) + var/list/mats = list() + mats[mat_id] = MINERAL_MATERIAL_AMOUNT + materials.silo_log(src, "released", -count, "sheets", mats) return TRUE if("diskInsert") var/obj/item/disk/design_disk/disk = usr.get_active_held_item() @@ -291,6 +306,11 @@ stored_research.add_design(inserted_disk.blueprints[n]) return TRUE if("Smelt") + if(!mat_container) + return + if(materials.on_hold()) + to_chat(usr, "Mineral access is on hold, please contact the quartermaster.") + return var/alloy_id = params["id"] var/datum/design/alloy = stored_research.isDesignResearchedID(alloy_id) if((check_access(inserted_id) || allowed(usr)) && alloy) @@ -301,7 +321,8 @@ else desired = input("How many sheets?", "How many sheets would you like to smelt?", 1) as null|num var/amount = round(min(desired,50,smelt_amount)) - materials.use_amount(alloy.materials, amount) + mat_container.use_amount(alloy.materials, amount) + materials.silo_log(src, "released", -amount, "sheets", alloy.materials) var/output if(ispath(alloy.build_path, /obj/item/stack/sheet)) output = new alloy.build_path(src, amount) @@ -311,20 +332,6 @@ else to_chat(usr, "Required access not found.") return TRUE - if("SmeltAll") - var/alloy_id = params["id"] - var/datum/design/alloy = stored_research.isDesignResearchedID(alloy_id) - if((check_access(inserted_id) || allowed(usr)) && alloy) - var/smelt_amount = can_smelt_alloy(alloy) - while(smelt_amount > 0) - materials.use_amount(alloy.materials) - smelt_amount-- - var/output = new alloy.build_path(src) - unload_mineral(output) - CHECK_TICK - else - to_chat(usr, "Required access not found.") - return TRUE /obj/machinery/mineral/ore_redemption/ex_act(severity, target) do_sparks(5, TRUE, src) diff --git a/code/modules/mining/machine_silo.dm b/code/modules/mining/machine_silo.dm new file mode 100644 index 0000000000..d12009e5b9 --- /dev/null +++ b/code/modules/mining/machine_silo.dm @@ -0,0 +1,233 @@ +GLOBAL_DATUM(ore_silo_default, /obj/machinery/ore_silo) +GLOBAL_LIST_EMPTY(silo_access_logs) + +/obj/machinery/ore_silo + name = "ore silo" + desc = "An all-in-one bluespace storage and transmission system for the station's mineral distribution needs." + icon = 'icons/obj/mining.dmi' + icon_state = "bin" + density = TRUE + circuit = /obj/item/circuitboard/machine/ore_silo + + var/list/holds = list() + var/list/datum/component/remote_materials/connected = list() + var/log_page = 1 + +/obj/machinery/ore_silo/Initialize(mapload) + . = ..() + AddComponent(/datum/component/material_container, + list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLASTIC), + INFINITY, + FALSE, + list(/obj/item/stack), + null, + null, + TRUE) + if (!GLOB.ore_silo_default && mapload && is_station_level(z)) + GLOB.ore_silo_default = src + +/obj/machinery/ore_silo/Destroy() + if (GLOB.ore_silo_default == src) + GLOB.ore_silo_default = null + + for(var/C in connected) + var/datum/component/remote_materials/mats = C + mats.disconnect_from(src) + + GET_COMPONENT(materials, /datum/component/material_container) + materials.retrieve_all() + + return ..() + +/obj/machinery/ore_silo/proc/remote_attackby(obj/machinery/M, mob/user, obj/item/stack/I) + GET_COMPONENT(materials, /datum/component/material_container) + // stolen from /datum/component/material_container/proc/OnAttackBy + if(user.a_intent != INTENT_HELP) + return + if(I.item_flags & ABSTRACT) + return + if(!istype(I) || (I.flags_1 & HOLOGRAM_1) || (I.item_flags & NO_MAT_REDEMPTION)) + to_chat(user, "[M] won't accept [I]!") + return + var/item_mats = I.materials & materials.materials + if(!length(item_mats)) + to_chat(user, "[I] does not contain sufficient materials to be accepted by [M].") + return + // assumes unlimited space... + var/amount = I.amount + materials.user_insert(I, user) + silo_log(M, "deposited", amount, "sheets", item_mats) + return TRUE + +/obj/machinery/ore_silo/attackby(obj/item/W, mob/user, params) + if (istype(W, /obj/item/stack)) + return remote_attackby(src, user, W) + return ..() + +/obj/machinery/ore_silo/ui_interact(mob/user) + user.set_machine(src) + var/datum/browser/popup = new(user, "ore_silo", null, 600, 550) + popup.set_content(generate_ui()) + popup.open() + +/obj/machinery/ore_silo/proc/generate_ui() + GET_COMPONENT(materials, /datum/component/material_container) + var/list/ui = list("Ore Silo

    Stored Material:

    ") + var/any = FALSE + for(var/M in materials.materials) + var/datum/material/mat = materials.materials[M] + var/sheets = round(mat.amount) / MINERAL_MATERIAL_AMOUNT + if (sheets) + if (sheets >= 1) + ui += "Eject" + else + ui += "Eject" + if (sheets >= 20) + ui += "20x" + else + ui += "20x" + ui += "[mat.name]: [sheets] sheets
    " + any = TRUE + if(!any) + ui += "Nothing!" + + ui += "

    Connected Machines:

    " + for(var/C in connected) + var/datum/component/remote_materials/mats = C + var/atom/parent = mats.parent + var/hold_key = "[get_area(parent)]/[mats.category]" + ui += "Remove" + ui += "[holds[hold_key] ? "Allow" : "Hold"]" + ui += " [parent.name] in [get_area_name(parent, TRUE)]
    " + if(!connected.len) + ui += "Nothing!" + + ui += "

    Access Logs:

    " + var/list/logs = GLOB.silo_access_logs[REF(src)] + var/len = LAZYLEN(logs) + var/num_pages = 1 + round((len - 1) / 30) + var/page = CLAMP(log_page, 1, num_pages) + if(num_pages > 1) + for(var/i in 1 to num_pages) + if(i == page) + ui += "[i]" + else + ui += "[i]" + + ui += "
      " + any = FALSE + for(var/i in (page - 1) * 30 + 1 to min(page * 30, len)) + var/datum/ore_silo_log/entry = logs[i] + ui += "
    1. [entry.formatted]
    2. " + any = TRUE + if (!any) + ui += "
    3. Nothing!
    4. " + + ui += "
    " + return ui.Join() + +/obj/machinery/ore_silo/Topic(href, href_list) + if(..()) + return + add_fingerprint(usr) + usr.set_machine(src) + + if(href_list["remove"]) + var/datum/component/remote_materials/mats = locate(href_list["remove"]) in connected + if (mats) + mats.disconnect_from(src) + connected -= mats + updateUsrDialog() + return TRUE + else if(href_list["hold1"]) + holds[href_list["hold1"]] = TRUE + updateUsrDialog() + return TRUE + else if(href_list["hold0"]) + holds -= href_list["hold0"] + updateUsrDialog() + return TRUE + else if(href_list["ejectsheet"]) + var/eject_sheet = href_list["ejectsheet"] + GET_COMPONENT(materials, /datum/component/material_container) + var/count = materials.retrieve_sheets(text2num(href_list["eject_amt"]), eject_sheet, drop_location()) + var/list/matlist = list() + matlist[eject_sheet] = MINERAL_MATERIAL_AMOUNT + silo_log(src, "ejected", -count, "sheets", matlist) + return TRUE + else if(href_list["page"]) + log_page = text2num(href_list["page"]) || 1 + updateUsrDialog() + return TRUE + +/obj/machinery/ore_silo/multitool_act(mob/living/user, obj/item/multitool/I) + if (istype(I)) + to_chat(user, "You log [src] in the multitool's buffer.") + I.buffer = src + return TRUE + +/obj/machinery/ore_silo/proc/silo_log(obj/machinery/M, action, amount, noun, list/mats) + if (!length(mats)) + return + var/datum/ore_silo_log/entry = new(M, action, amount, noun, mats) + + var/list/logs = GLOB.silo_access_logs[REF(src)] + if(!LAZYLEN(logs)) + GLOB.silo_access_logs[REF(src)] = logs = list(entry) + else if(!logs[1].merge(entry)) + logs.Insert(1, entry) + + updateUsrDialog() + animate(src, icon_state = "bin_partial", time = 2) + animate(icon_state = "bin_full", time = 1) + animate(icon_state = "bin_partial", time = 2) + animate(icon_state = "bin") + +/datum/ore_silo_log + var/name // for VV + var/formatted // for display + + var/timestamp + var/machine_name + var/area_name + var/action + var/noun + var/amount + var/list/materials + +/datum/ore_silo_log/New(obj/machinery/M, _action, _amount, _noun, list/mats=list()) + timestamp = station_time_timestamp() + machine_name = M.name + area_name = get_area_name(M, TRUE) + action = _action + amount = _amount + noun = _noun + materials = mats.Copy() + for(var/each in materials) + materials[each] *= abs(_amount) + format() + +/datum/ore_silo_log/proc/merge(datum/ore_silo_log/other) + if (other == src || action != other.action || noun != other.noun) + return FALSE + if (machine_name != other.machine_name || area_name != other.area_name) + return FALSE + + timestamp = other.timestamp + amount += other.amount + for(var/each in other.materials) + materials[each] += other.materials[each] + format() + return TRUE + +/datum/ore_silo_log/proc/format() + name = "[machine_name]: [action] [amount]x [noun]" + + var/list/msg = list("([timestamp]) [machine_name] in [area_name]
    [action] [abs(amount)]x [noun]
    ") + var/sep = "" + for(var/key in materials) + var/val = round(materials[key]) / MINERAL_MATERIAL_AMOUNT + msg += sep + sep = ", " + msg += "[amount < 0 ? "-" : "+"][val] [copytext(key, 2)]" + formatted = msg.Join() diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index dcc9034e2d..aa3ab240d8 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -71,42 +71,51 @@ desc = "A machine that automatically stacks acquired materials. Controlled by a nearby console." density = TRUE circuit = /obj/item/circuitboard/machine/stacking_machine + input_dir = EAST + output_dir = WEST var/obj/machinery/mineral/stacking_unit_console/CONSOLE var/stk_types = list() var/stk_amt = list() var/stack_list[0] //Key: Type. Value: Instance of type. - var/stack_amt = 50; //ammount to stack before releassing - input_dir = EAST - output_dir = WEST + var/stack_amt = 50 //amount to stack before releassing + var/datum/component/remote_materials/materials + var/force_connect = FALSE -/obj/machinery/mineral/stacking_machine/Initialize() +/obj/machinery/mineral/stacking_machine/Initialize(mapload) . = ..() proximity_monitor = new(src, 1) + materials = AddComponent(/datum/component/remote_materials, "stacking", mapload, FALSE, mapload && force_connect) /obj/machinery/mineral/stacking_machine/HasProximity(atom/movable/AM) if(istype(AM, /obj/item/stack/sheet) && AM.loc == get_step(src, input_dir)) process_sheet(AM) -/obj/machinery/mineral/stacking_machine/multitool_act(mob/living/user, obj/item/I) - if(istype(I, /obj/item/multitool)) - var/obj/item/multitool/M = I - if(!istype(M.buffer, /obj/machinery/mineral/stacking_unit_console)) - to_chat(user, "The [I] has no linkage data in its buffer.") - return FALSE - else +/obj/machinery/mineral/stacking_machine/multitool_act(mob/living/user, obj/item/multitool/M) + if(istype(M)) + if(istype(M.buffer, /obj/machinery/mineral/stacking_unit_console)) CONSOLE = M.buffer CONSOLE.machine = src - to_chat(user, "You link [src] to the console in [I]'s buffer.") + to_chat(user, "You link [src] to the console in [M]'s buffer.") return TRUE /obj/machinery/mineral/stacking_machine/proc/process_sheet(obj/item/stack/sheet/inp) - if(!(inp.type in stack_list)) //It's the first of this sheet added - var/obj/item/stack/sheet/s = new inp.type(src, 0) - stack_list[inp.type] = s - var/obj/item/stack/sheet/storage = stack_list[inp.type] + var/key = inp.merge_type + var/obj/item/stack/sheet/storage = stack_list[key] + if(!storage) //It's the first of this sheet added + stack_list[key] = storage = new inp.type(src, 0) storage.amount += inp.amount //Stack the sheets - while(storage.amount > stack_amt) //Get rid of excessive stackage + qdel(inp) + + if(materials.silo && !materials.on_hold()) //Dump the sheets to the silo + var/matlist = storage.materials & materials.mat_container.materials + if (length(matlist)) + var/inserted = materials.mat_container.insert_stack(storage) + materials.silo_log(src, "collected", inserted, "sheets", matlist) + if (QDELETED(storage)) + stack_list -= key + return + + while(storage.amount >= stack_amt) //Get rid of excessive stackage var/obj/item/stack/sheet/out = new inp.type(null, stack_amt) unload_mineral(out) storage.amount -= stack_amt - qdel(inp) //Let the old sheet garbage collect diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm index cc706f5ceb..30b185d3ee 100644 --- a/code/modules/mob/dead/dead.dm +++ b/code/modules/mob/dead/dead.dm @@ -14,12 +14,12 @@ INITIALIZE_IMMEDIATE(/mob/dead) prepare_huds() - if(length(CONFIG_GET(keyed_string_list/cross_server))) + if(length(CONFIG_GET(keyed_list/cross_server))) verbs += /mob/dead/proc/server_hop set_focus(src) return INITIALIZE_HINT_NORMAL -/mob/dead/dust() //ghosts can't be vaporised. +/mob/dead/dust(just_ash, drop_items, force) //ghosts can't be vaporised. return /mob/dead/gib() //ghosts can't be gibbed. @@ -59,7 +59,7 @@ INITIALIZE_IMMEDIATE(/mob/dead) set desc= "Jump to the other server" if(notransform) return - var/list/csa = CONFIG_GET(keyed_string_list/cross_server) + var/list/csa = CONFIG_GET(keyed_list/cross_server) var/pick switch(csa.len) if(0) diff --git a/code/modules/mob/dead/new_player/poll.dm b/code/modules/mob/dead/new_player/poll.dm index 388f63961b..5ac1b4adb5 100644 --- a/code/modules/mob/dead/new_player/poll.dm +++ b/code/modules/mob/dead/new_player/poll.dm @@ -375,9 +375,9 @@ if (!usr || !src) return 0 //we gots ourselfs a dirty cheater on our hands! - log_game("[key_name(usr)] attempted to rig the vote by voting as [ckey]") - message_admins("[key_name_admin(usr)] attempted to rig the vote by voting as [ckey]") - to_chat(usr, "You don't seem to be [ckey].") + log_game("[key_name(usr)] attempted to rig the vote by voting as [key]") + message_admins("[key_name_admin(usr)] attempted to rig the vote by voting as [key]") + to_chat(usr, "You don't seem to be [key].") to_chat(src, "Something went horribly wrong processing your vote. Please contact an administrator, they should have gotten a message about this") return 0 return 1 @@ -579,7 +579,7 @@ return 1 var/i if(query_multi_choicelen.NextRow()) - i = text2num(query_multi_choicelen.item[1]) + i = text2num(query_multi_choicelen.item[1]) qdel(query_multi_choicelen) var/datum/DBQuery/query_multi_hasvoted = SSdbcore.NewQuery("SELECT id FROM [format_table_name("poll_vote")] WHERE pollid = [pollid] AND ckey = '[ckey]'") if(!query_multi_hasvoted.warn_execute()) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 8e531001a7..9f8463477f 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -16,6 +16,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) see_invisible = SEE_INVISIBLE_OBSERVER see_in_dark = 100 invisibility = INVISIBILITY_OBSERVER + hud_type = /datum/hud/ghost var/can_reenter_corpse var/datum/hud/living/carbon/hud = null // hud var/bootime = 0 @@ -135,6 +136,10 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) grant_all_languages() +/mob/dead/observer/get_photo_description(obj/item/camera/camera) + if(!invisibility || camera.see_ghosts) + return "You can also see a g-g-g-g-ghooooost!" + /mob/dead/observer/narsie_act() var/old_color = color color = "#960000" diff --git a/code/modules/mob/death.dm b/code/modules/mob/death.dm index 90c3bb529b..2d3ab19b14 100644 --- a/code/modules/mob/death.dm +++ b/code/modules/mob/death.dm @@ -6,7 +6,7 @@ //This is the proc for turning a mob into ash. Mostly a copy of gib code (above). //Originally created for wizard disintegrate. I've removed the virus code since it's irrelevant here. //Dusting robots does not eject the MMI, so it's a bit more powerful than gib() /N -/mob/proc/dust() +/mob/proc/dust(just_ash, drop_items, force) return /mob/proc/death(gibbed) diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 58b3d8704b..a1ec3b734f 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -170,8 +170,10 @@ return FALSE return !held_items[hand_index] -/mob/proc/put_in_hand(obj/item/I, hand_index, forced = FALSE) +/mob/proc/put_in_hand(obj/item/I, hand_index, forced = FALSE, ignore_anim = TRUE) if(forced || can_put_in_hand(I, hand_index)) + if(isturf(I.loc) && !ignore_anim) + I.do_pickup_animation(src) if(hand_index == null) return FALSE if(get_item_for_held_index(hand_index) != null) @@ -208,8 +210,8 @@ //Puts the item into our active hand if possible. returns TRUE on success. -/mob/proc/put_in_active_hand(obj/item/I, forced = FALSE) - return put_in_hand(I, active_hand_index, forced) +/mob/proc/put_in_active_hand(obj/item/I, forced = FALSE, ignore_animation = TRUE) + return put_in_hand(I, active_hand_index, forced, ignore_animation) //Puts the item into our inactive hand if possible, returns TRUE on success diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index 3ce203937c..7d1dc7d1d2 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -21,7 +21,7 @@ name = "brain" if(C.mind && C.mind.has_antag_datum(/datum/antagonist/changeling) && !no_id_transfer) //congrats, you're trapped in a body you don't control - if(brainmob && !(C.stat == DEAD || (C.has_trait(TRAIT_FAKEDEATH)))) + if(brainmob && !(C.stat == DEAD || (C.has_trait(TRAIT_DEATHCOMA)))) to_chat(brainmob, "You can't feel your body! You're still just a brain!") forceMove(C) C.update_hair() 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 cdc1b08d21..631a640d58 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -233,19 +233,19 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/neurotoxin/on_lose(mob/living/carbon/user) remove_ranged_ability() -/obj/effect/proc_holder/alien/neurotoxin/add_ranged_ability(mob/living/user, msg) +/obj/effect/proc_holder/alien/neurotoxin/add_ranged_ability(mob/living/user,msg,forced) ..() if(isalienadult(user)) var/mob/living/carbon/alien/humanoid/A = user A.drooling = 1 A.update_icons() -/obj/effect/proc_holder/alien/neurotoxin/remove_ranged_ability(mob/living/user, msg) - ..() - if(isalienadult(user)) - var/mob/living/carbon/alien/humanoid/A = user +/obj/effect/proc_holder/alien/neurotoxin/remove_ranged_ability(msg) + if(isalienadult(ranged_ability_user)) + var/mob/living/carbon/alien/humanoid/A = ranged_ability_user A.drooling = 0 A.update_icons() + ..() /obj/effect/proc_holder/alien/resin name = "Secrete Resin" diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm index 3df3447fa5..d3ed8a6541 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm @@ -5,21 +5,16 @@ health = 125 icon_state = "aliend" - /mob/living/carbon/alien/humanoid/drone/Initialize() AddAbility(new/obj/effect/proc_holder/alien/evolve(null)) . = ..() - /mob/living/carbon/alien/humanoid/drone/create_internal_organs() internal_organs += new /obj/item/organ/alien/plasmavessel/large internal_organs += new /obj/item/organ/alien/resinspinner internal_organs += new /obj/item/organ/alien/acid ..() -/mob/living/carbon/alien/humanoid/drone/movement_delay() - . = ..() - /obj/effect/proc_holder/alien/evolve name = "Evolve to Praetorian" desc = "Praetorian" diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index ada1d1f21c..fe682b5c99 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -10,11 +10,6 @@ internal_organs += new /obj/item/organ/alien/plasmavessel/small ..() -/mob/living/carbon/alien/humanoid/hunter/movement_delay() - . = -1 //hunters are sanic - . += ..() //but they still need to slow down on stun - - //Hunter verbs /mob/living/carbon/alien/humanoid/hunter/proc/toggle_leap(message = 1) @@ -26,7 +21,6 @@ else return - /mob/living/carbon/alien/humanoid/hunter/ClickOn(atom/A, params) face_atom(A) if(leap_on_click) @@ -34,7 +28,6 @@ else ..() - #define MAX_ALIEN_LEAP_DIST 7 /mob/living/carbon/alien/humanoid/hunter/proc/leap_at(atom/A) @@ -54,7 +47,7 @@ leaping = 1 weather_immunities += "lava" update_icons() - throw_at(A, MAX_ALIEN_LEAP_DIST, 1, src, FALSE, TRUE, callback = CALLBACK(src, .leap_end)) + throw_at(A, MAX_ALIEN_LEAP_DIST, 1, src, FALSE, TRUE, callback = CALLBACK(src, .proc/leap_end)) /mob/living/carbon/alien/humanoid/hunter/proc/leap_end() leaping = 0 diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm index fe61c2a8ff..4ec5780838 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm @@ -5,12 +5,8 @@ health = 250 icon_state = "alienp" - - /mob/living/carbon/alien/humanoid/royal/praetorian/Initialize() - real_name = name - AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/repulse/xeno(src)) AddAbility(new /obj/effect/proc_holder/alien/royal/praetorian/evolve()) . = ..() @@ -22,11 +18,6 @@ internal_organs += new /obj/item/organ/alien/neurotoxin ..() - -/mob/living/carbon/alien/humanoid/royal/praetorian/movement_delay() - . = ..() - . += 1 - /obj/effect/proc_holder/alien/royal/praetorian/evolve name = "Evolve" desc = "Produce an internal egg sac capable of spawning children. Only one queen can exist at a time." diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm index 4a7914a22d..97486e6a9d 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm @@ -5,7 +5,6 @@ health = 150 icon_state = "aliens" - /mob/living/carbon/alien/humanoid/sentinel/Initialize() AddAbility(new /obj/effect/proc_holder/alien/sneak) . = ..() @@ -15,7 +14,3 @@ internal_organs += new /obj/item/organ/alien/acid internal_organs += new /obj/item/organ/alien/neurotoxin ..() - - -/mob/living/carbon/alien/humanoid/sentinel/movement_delay() - . = ..() diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index eb5e9664d9..8403d533c4 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -5,6 +5,7 @@ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/xeno = 5, /obj/item/stack/sheet/animalhide/xeno = 1) possible_a_intents = list(INTENT_HELP, INTENT_DISARM, INTENT_GRAB, INTENT_HARM) limb_destroyer = 1 + hud_type = /datum/hud/alien var/obj/item/r_store = null var/obj/item/l_store = null var/caste = "" @@ -25,16 +26,8 @@ AddAbility(new/obj/effect/proc_holder/alien/regurgitate(null)) . = ..() -/mob/living/carbon/alien/humanoid/movement_delay() - . = ..() - var/static/config_alien_delay - if(isnull(config_alien_delay)) - config_alien_delay = CONFIG_GET(number/alien_delay) - . += move_delay_add + config_alien_delay + sneaking //move_delay_add is used to slow aliens with stun - /mob/living/carbon/alien/humanoid/restrained(ignore_grab) - . = handcuffed - + return handcuffed /mob/living/carbon/alien/humanoid/show_inv(mob/user) user.set_machine(src) diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 9c61e8aa2d..79eed6b82b 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -40,7 +40,7 @@ AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/repulse/xeno(src)) AddAbility(new/obj/effect/proc_holder/alien/royal/queen/promote()) smallsprite.Grant(src) - ..() + return ..() /mob/living/carbon/alien/humanoid/royal/queen/create_internal_organs() internal_organs += new /obj/item/organ/alien/plasmavessel/large/queen @@ -50,10 +50,6 @@ internal_organs += new /obj/item/organ/alien/eggsac ..() -/mob/living/carbon/alien/humanoid/royal/queen/movement_delay() - . = ..() - . += 3 - //Queen verbs /obj/effect/proc_holder/alien/lay_egg name = "Lay Egg" diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index c351a719d7..94f3596d27 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -5,6 +5,7 @@ pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_SMALL density = FALSE + hud_type = /datum/hud/larva maxHealth = 25 health = 25 diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index 9632fbc5e3..b10a9df6a8 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -18,7 +18,7 @@ if(health<= -maxHealth || !getorgan(/obj/item/organ/brain)) death() return - if(IsUnconscious() || IsSleeping() || getOxyLoss() > 50 || (has_trait(TRAIT_FAKEDEATH)) || health <= crit_modifier()) + if(IsUnconscious() || IsSleeping() || getOxyLoss() > 50 || (has_trait(TRAIT_DEATHCOMA)) || health <= crit_threshold) if(stat == CONSCIOUS) stat = UNCONSCIOUS blind_eyes(1) diff --git a/code/modules/mob/living/carbon/alien/larva/powers.dm b/code/modules/mob/living/carbon/alien/larva/powers.dm index 906ba71c96..9d5617b3e7 100644 --- a/code/modules/mob/living/carbon/alien/larva/powers.dm +++ b/code/modules/mob/living/carbon/alien/larva/powers.dm @@ -15,7 +15,7 @@ "You are now hiding.") else user.layer = MOB_LAYER - user.visible_message("[user.] slowly peeks up from the ground...", \ + user.visible_message("[user] slowly peeks up from the ground...", \ "You stop hiding.") return 1 diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index c7d987fd36..e25f68a5ea 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -84,9 +84,9 @@ /mob/living/carbon/attackby(obj/item/I, mob/user, params) if(lying && surgeries.len) - if(user != src && user.a_intent == INTENT_HELP) + if(user != src && (user.a_intent == INTENT_HELP || user.a_intent == INTENT_DISARM)) for(var/datum/surgery/S in surgeries) - if(S.next_step(user)) + if(S.next_step(user,user.a_intent)) return 1 return ..() @@ -515,6 +515,10 @@ if(((maxHealth - total_burn) < HEALTH_THRESHOLD_DEAD) && stat == DEAD ) become_husk("burn") med_hud_set_health() + if(stat == SOFT_CRIT) + add_movespeed_modifier(MOVESPEED_ID_CARBON_SOFTCRIT, TRUE, multiplicative_slowdown = SOFTCRIT_ADD_SLOWDOWN) + else + remove_movespeed_modifier(MOVESPEED_ID_CARBON_SOFTCRIT, TRUE) /mob/living/carbon/update_sight() if(!client) @@ -599,7 +603,7 @@ if(!client) return - if(health <= crit_modifier()) + if(health <= crit_threshold) var/severity = 0 switch(health) if(-20 to -10) @@ -724,11 +728,11 @@ if(health <= HEALTH_THRESHOLD_DEAD && !has_trait(TRAIT_NODEATH)) death() return - if(IsUnconscious() || IsSleeping() || getOxyLoss() > 50 || (has_trait(TRAIT_FAKEDEATH)) || (health <= HEALTH_THRESHOLD_FULLCRIT && !has_trait(TRAIT_NOHARDCRIT))) + if(IsUnconscious() || IsSleeping() || getOxyLoss() > 50 || (has_trait(TRAIT_DEATHCOMA)) || (health <= HEALTH_THRESHOLD_FULLCRIT && !has_trait(TRAIT_NOHARDCRIT))) stat = UNCONSCIOUS blind_eyes(1) else - if(health <= crit_modifier() && !has_trait(TRAIT_NOSOFTCRIT)) + if(health <= crit_threshold && !has_trait(TRAIT_NOSOFTCRIT)) stat = SOFT_CRIT else stat = CONSCIOUS diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index c9ac8655f9..f18d6d363d 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -372,12 +372,3 @@ var/obj/item/organ/ears/ears = getorganslot(ORGAN_SLOT_EARS) if(istype(ears) && !ears.deaf) . = TRUE - -/mob/living/carbon/crit_modifier() - . = ..() - GET_COMPONENT(mood, /datum/component/mood) - if(mood) - if(mood.sanity >= SANITY_UNSTABLE) - . += 5 - else if(mood.sanity >= SANITY_CRAZY) - . += 10 diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index e5444d3297..ca664ebb1e 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -10,9 +10,6 @@ if(legcuffed) . += legcuffed.slowdown - if(stat == SOFT_CRIT) - . += SOFTCRIT_ADD_SLOWDOWN - /mob/living/carbon/slip(knockdown_amount, obj/O, lube) if(movement_type & FLYING) return 0 diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm index 7d6d5afca2..36d26f0faa 100644 --- a/code/modules/mob/living/carbon/examine.dm +++ b/code/modules/mob/living/carbon/examine.dm @@ -104,7 +104,6 @@ msg += "[t_He] look[p_s()] very happy.\n" if(MOOD_LEVEL_HAPPY4 to INFINITY) msg += "[t_He] look[p_s()] ecstatic.\n" - msg += "*---------*
    " to_chat(user, msg) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 786ddec5dd..0db3d82777 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -77,53 +77,26 @@ if(!.) return var/mob/living/carbon/human/H = user - if(!H.is_wagging_tail()) - H.startTailWag() + if(!istype(H) || !H.dna || !H.dna.species || !H.dna.species.can_wag_tail(H)) + return + if(!H.dna.species.is_wagging_tail()) + H.dna.species.start_wagging_tail(H) else - H.endTailWag() - -/mob/living/carbon/human/proc/is_wagging_tail() - return (dna && dna.species && (("waggingtail_lizard" in dna.species.mutant_bodyparts) || ("waggingtail_human" in dna.species.mutant_bodyparts))) + H.dna.species.stop_wagging_tail(H) /datum/emote/living/carbon/human/wag/can_run_emote(mob/user, status_check = TRUE) if(!..()) return FALSE var/mob/living/carbon/human/H = user - if(H.dna && H.dna.species && (("tail_lizard" in H.dna.species.mutant_bodyparts) || ("waggingtail_lizard" in H.dna.species.mutant_bodyparts) || ("tail_human" in H.dna.species.mutant_bodyparts) || ("waggingtail_human" in H.dna.species.mutant_bodyparts))) - return TRUE + return H.dna && H.dna.species && H.dna.species.can_wag_tail(user) /datum/emote/living/carbon/human/wag/select_message_type(mob/user) . = ..() var/mob/living/carbon/human/H = user - if(H.is_wagging_tail()) - . = null - -//Don't know where else to put this, it's basically an emote -/mob/living/carbon/human/proc/startTailWag() - if(!dna || !dna.species) + if(!H.dna || !H.dna.species) return - if("tail_lizard" in dna.species.mutant_bodyparts) - dna.species.mutant_bodyparts -= "tail_lizard" - dna.species.mutant_bodyparts -= "spines" - dna.species.mutant_bodyparts |= "waggingtail_lizard" - dna.species.mutant_bodyparts |= "waggingspines" - if("tail_human" in dna.species.mutant_bodyparts) - dna.species.mutant_bodyparts -= "tail_human" - dna.species.mutant_bodyparts |= "waggingtail_human" - update_body() - -/mob/living/carbon/human/proc/endTailWag() - if(!dna || !dna.species) - return - if("waggingtail_lizard" in dna.species.mutant_bodyparts) - dna.species.mutant_bodyparts -= "waggingtail_lizard" - dna.species.mutant_bodyparts -= "waggingspines" - dna.species.mutant_bodyparts |= "tail_lizard" - dna.species.mutant_bodyparts |= "spines" - if("waggingtail_human" in dna.species.mutant_bodyparts) - dna.species.mutant_bodyparts -= "waggingtail_human" - dna.species.mutant_bodyparts |= "tail_human" - update_body() + if(H.dna.species.is_wagging_tail()) + . = null /datum/emote/living/carbon/human/wing key = "wing" diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 6e9b4fdca1..a6f901e695 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -144,8 +144,13 @@ for(var/X in disabled) var/obj/item/bodypart/BP = X - var/more_brute = BP.brute_dam >= BP.burn_dam - msg += "[capitalize(t_his)] [BP.name] is [more_brute ? "broken and mangled" : "burnt and blistered"]!\n" + var/damage_text + if(!(BP.get_damage(include_stamina = FALSE) >= BP.max_damage)) //Stamina is disabling the limb + damage_text = "limp and lifeless" + else + var/more_brute = BP.brute_dam >= BP.burn_dam + damage_text = more_brute ? "broken and mangled" : "burnt and blistered" + msg += "[capitalize(t_his)] [BP.name] is [damage_text]!\n" //stores missing limbs var/l_limbs_missing = 0 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index b1293a2dba..adae11bf69 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -28,7 +28,7 @@ . = ..() - AddComponent(/datum/component/redirect, list(COMSIG_COMPONENT_CLEAN_ACT), CALLBACK(src, .proc/clean_blood)) + AddComponent(/datum/component/redirect, list(COMSIG_COMPONENT_CLEAN_ACT = CALLBACK(src, .proc/clean_blood))) /mob/living/carbon/human/ComponentInitialize() @@ -656,7 +656,7 @@ var/they_breathe = !C.has_trait(TRAIT_NOBREATH) var/they_lung = C.getorganslot(ORGAN_SLOT_LUNGS) - if(C.health > C.crit_modifier()) + if(C.health > C.crit_threshold) return src.visible_message("[src] performs CPR on [C.name]!", "You perform CPR on [C.name].") diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index c371465ffa..12519543ed 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -1,5 +1,6 @@ /mob/living/carbon/human hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD,ANTAG_HUD,GLAND_HUD,SENTIENT_DISEASE_HUD) + hud_type = /datum/hud/human possible_a_intents = list(INTENT_HELP, INTENT_DISARM, INTENT_GRAB, INTENT_HARM) pressure_resistance = 25 can_buckle = TRUE diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 5bfbb76e46..41fb4bf677 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -1,9 +1,16 @@ +/mob/living/carbon/human/get_movespeed_modifiers() + var/list/considering = ..() + . = considering + if(has_trait(TRAIT_IGNORESLOWDOWN)) + for(var/id in .) + var/list/data = .[id] + if(data[MOVESPEED_DATA_INDEX_FLAGS] & IGNORE_NOSLOW) + .[id] = data + /mob/living/carbon/human/movement_delay() - . = 0 - var/static/config_human_delay - if(isnull(config_human_delay)) - config_human_delay = CONFIG_GET(number/human_delay) - . += ..() + config_human_delay + dna.species.movement_delay(src) + . = ..() + if(dna && dna.species) + . += dna.species.movement_delay(src) /mob/living/carbon/human/slip(knockdown_amount, obj/O, lube) if(has_trait(TRAIT_NOSLIPALL)) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index c840315a61..29beedfff1 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -23,7 +23,12 @@ if (notransform) return - if(..()) //not dead + . = ..() + + if (QDELETED(src)) + return 0 + + if(.) //not dead handle_active_genes() if(stat != DEAD) @@ -84,7 +89,7 @@ var/L = getorganslot(ORGAN_SLOT_LUNGS) if(!L) - if(health >= crit_modifier()) + if(health >= crit_threshold) adjustOxyLoss(HUMAN_MAX_OXYLOSS + 1) else if(!has_trait(TRAIT_NOCRITDAMAGE)) adjustOxyLoss(HUMAN_CRIT_MAX_OXYLOSS) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 54dd378037..b5eca50ca6 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -94,7 +94,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) GLOB.roundstart_races += "human" /datum/species/proc/check_roundstart_eligible() - if(id in (CONFIG_GET(keyed_flag_list/roundstart_races))) + if(id in (CONFIG_GET(keyed_list/roundstart_races))) return TRUE return FALSE @@ -241,7 +241,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/obj/item/organ/I = new path() I.Insert(C) -/datum/species/proc/on_species_gain(mob/living/carbon/C, datum/species/old_species) +/datum/species/proc/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load) // Drop the items the new species can't wear for(var/slot_id in no_equip) var/obj/item/thing = C.get_item_by_slot(slot_id) @@ -286,7 +286,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) A.cure(FALSE) -/datum/species/proc/on_species_loss(mob/living/carbon/C) +/datum/species/proc/on_species_loss(mob/living/carbon/human/C, datum/species/new_species, pref_load) if(C.dna.species.exotic_bloodtype) C.dna.blood_type = random_blood_type() if(DIGITIGRADE in species_traits) @@ -601,15 +601,15 @@ GLOBAL_LIST_EMPTY(roundstart_races) if("tail_lizard") S = GLOB.tails_list_lizard[H.dna.features["tail_lizard"]] if("waggingtail_lizard") - S.= GLOB.animated_tails_list_lizard[H.dna.features["tail_lizard"]] + S = GLOB.animated_tails_list_lizard[H.dna.features["tail_lizard"]] if("tail_human") S = GLOB.tails_list_human[H.dna.features["tail_human"]] if("waggingtail_human") - S.= GLOB.animated_tails_list_human[H.dna.features["tail_human"]] + S = GLOB.animated_tails_list_human[H.dna.features["tail_human"]] if("spines") S = GLOB.spines_list[H.dna.features["spines"]] if("waggingspines") - S.= GLOB.animated_spines_list[H.dna.features["spines"]] + S = GLOB.animated_spines_list[H.dna.features["spines"]] if("snout") S = GLOB.snouts_list[H.dna.features["snout"]] if("frills") @@ -708,7 +708,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.losebreath = 0 var/takes_crit_damage = (!H.has_trait(TRAIT_NOCRITDAMAGE)) - if((H.health < H.crit_modifier()) && takes_crit_damage) + if((H.health < H.crit_threshold) && takes_crit_damage) H.adjustBruteLoss(1) /datum/species/proc/spec_death(gibbed, mob/living/carbon/human/H) @@ -1356,20 +1356,20 @@ GLOBAL_LIST_EMPTY(roundstart_races) switch(hit_area) if(BODY_ZONE_HEAD) - if(H.stat == CONSCIOUS && armor_block < 50) + if(!I.is_sharp() && armor_block < 50) if(prob(I.force)) - H.visible_message("[H] has been knocked senseless!", \ - "[H] has been knocked senseless!") - H.confused = max(H.confused, 20) H.adjustBrainLoss(20) - H.adjust_blurriness(10) + if(H.stat == CONSCIOUS) + H.visible_message("[H] has been knocked senseless!", \ + "[H] has been knocked senseless!") + H.confused = max(H.confused, 20) + H.adjust_blurriness(10) if(prob(10)) H.gain_trauma(/datum/brain_trauma/mild/concussion) else - if(!I.is_sharp()) - H.adjustBrainLoss(I.force * 0.2) + H.adjustBrainLoss(I.force * 0.2) - if(!I.is_sharp() && prob(I.force + ((100 - H.health) * 0.5)) && H != user) // rev deconversion through blunt trauma. + if(H.stat == CONSCIOUS && H != user && prob(I.force + ((100 - H.health) * 0.5))) // rev deconversion through blunt trauma. var/datum/antagonist/rev/rev = H.mind.has_antag_datum(/datum/antagonist/rev) if(rev) rev.remove_revolutionary(FALSE, user) @@ -1386,7 +1386,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.update_inv_glasses() if(BODY_ZONE_CHEST) - if(H.stat == CONSCIOUS && armor_block < 50) + if(H.stat == CONSCIOUS && !I.is_sharp() && armor_block < 50) if(prob(I.force)) H.visible_message("[H] has been knocked down!", \ "[H] has been knocked down!") @@ -1631,7 +1631,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/thermal_protection = H.get_thermal_protection() - if(thermal_protection >= FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT && !no_protection) + if(thermal_protection >= FIRE_IMMUNITY_MAX_TEMP_PROTECT && !no_protection) return if(thermal_protection >= FIRE_SUIT_MAX_TEMP_PROTECT && !no_protection) H.adjust_bodytemperature(11) @@ -1664,3 +1664,17 @@ GLOBAL_LIST_EMPTY(roundstart_races) /datum/species/proc/negates_gravity(mob/living/carbon/human/H) return 0 + +//////////////// +//Tail Wagging// +//////////////// + +/datum/species/proc/can_wag_tail(mob/living/carbon/human/H) + return FALSE + +/datum/species/proc/is_wagging_tail(mob/living/carbon/human/H) + return FALSE + +/datum/species/proc/start_wagging_tail(mob/living/carbon/human/H) + +/datum/species/proc/stop_wagging_tail(mob/living/carbon/human/H) diff --git a/code/modules/mob/living/carbon/human/species_types/felinid.dm b/code/modules/mob/living/carbon/human/species_types/felinid.dm new file mode 100644 index 0000000000..1d82614fb1 --- /dev/null +++ b/code/modules/mob/living/carbon/human/species_types/felinid.dm @@ -0,0 +1,130 @@ +//Subtype of human +/datum/species/human/felinid + name = "Felinid" + id = "felinid" + limbs_id = "human" + + mutant_bodyparts = list("ears", "tail_human") + default_features = list("mcolor" = "FFF", "tail_human" = "Cat", "ears" = "Cat", "wings" = "None") + + mutantears = /obj/item/organ/ears/cat + mutanttail = /obj/item/organ/tail/cat + +/datum/species/human/felinid/qualifies_for_rank(rank, list/features) + return TRUE + +//Curiosity killed the cat's wagging tail. +/datum/species/human/felinid/spec_death(gibbed, mob/living/carbon/human/H) + if(H) + stop_wagging_tail(H) + +/datum/species/human/felinid/spec_stun(mob/living/carbon/human/H,amount) + if(H) + stop_wagging_tail(H) + . = ..() + +/datum/species/human/felinid/can_wag_tail(mob/living/carbon/human/H) + return ("tail_human" in mutant_bodyparts) || ("waggingtail_human" in mutant_bodyparts) + +/datum/species/human/felinid/is_wagging_tail(mob/living/carbon/human/H) + return ("waggingtail_human" in mutant_bodyparts) + +/datum/species/human/felinid/start_wagging_tail(mob/living/carbon/human/H) + if("tail_human" in mutant_bodyparts) + mutant_bodyparts -= "tail_human" + mutant_bodyparts |= "waggingtail_human" + H.update_body() + +/datum/species/human/felinid/stop_wagging_tail(mob/living/carbon/human/H) + if("waggingtail_human" in mutant_bodyparts) + mutant_bodyparts -= "waggingtail_human" + mutant_bodyparts |= "tail_human" + H.update_body() + +/datum/species/human/felinid/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load) + if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(!pref_load) //Hah! They got forcefully purrbation'd. Force default felinid parts on them if they have no mutant parts in those areas! + if(H.dna.features["tail_human"] == "None") + H.dna.features["tail_human"] = "Cat" + if(H.dna.features["ears"] == "None") + H.dna.features["ears"] = "Cat" + if(H.dna.features["ears"] == "Cat") + var/obj/item/organ/ears/cat/ears = new + ears.Insert(H, drop_if_replaced = FALSE) + else + mutantears = /obj/item/organ/ears + if(H.dna.features["tail_human"] == "Cat") + var/obj/item/organ/tail/cat/tail = new + tail.Insert(H, drop_if_replaced = FALSE) + else + mutanttail = null + return ..() + +/datum/species/human/felinid/on_species_loss(mob/living/carbon/H, datum/species/new_species, pref_load) + var/obj/item/organ/ears/cat/ears = H.getorgan(/obj/item/organ/ears/cat) + var/obj/item/organ/tail/cat/tail = H.getorgan(/obj/item/organ/tail/cat) + + if(ears) + var/obj/item/organ/ears/NE + if(new_species && new_species.mutantears) + // Roundstart cat ears override new_species.mutantears, reset it here. + new_species.mutantears = initial(new_species.mutantears) + if(new_species.mutantears) + NE = new new_species.mutantears + if(!NE) + // Go with default ears + NE = new /obj/item/organ/ears + NE.Insert(H, drop_if_replaced = FALSE) + + if(tail) + var/obj/item/organ/tail/NT + if(new_species && new_species.mutanttail) + // Roundstart cat tail overrides new_species.mutanttail, reset it here. + new_species.mutanttail = initial(new_species.mutanttail) + if(new_species.mutanttail) + NT = new new_species.mutanttail + if(NT) + NT.Insert(H, drop_if_replaced = FALSE) + else + tail.Remove(H) + +/proc/mass_purrbation() + for(var/M in GLOB.mob_list) + if(ishumanbasic(M)) + purrbation_apply(M) + CHECK_TICK + +/proc/mass_remove_purrbation() + for(var/M in GLOB.mob_list) + if(ishumanbasic(M)) + purrbation_remove(M) + CHECK_TICK + +/proc/purrbation_toggle(mob/living/carbon/human/H, silent = FALSE) + if(!ishumanbasic(H)) + return + if(!iscatperson(H)) + purrbation_apply(H, silent) + . = TRUE + else + purrbation_remove(H, silent) + . = FALSE + +/proc/purrbation_apply(mob/living/carbon/human/H, silent = FALSE) + if(!ishuman(H) || iscatperson(H)) + return + H.set_species(/datum/species/human/felinid) + + if(!silent) + to_chat(H, "Something is nya~t right.") + playsound(get_turf(H), 'sound/effects/meow1.ogg', 50, 1, -1) + +/proc/purrbation_remove(mob/living/carbon/human/H, silent = FALSE) + if(!ishuman(H) || !iscatperson(H)) + return + + H.set_species(/datum/species/human) + + if(!silent) + to_chat(H, "You are no longer a cat.") diff --git a/code/modules/mob/living/carbon/human/species_types/humans.dm b/code/modules/mob/living/carbon/human/species_types/humans.dm index 2751b8b7a7..0f947b7293 100644 --- a/code/modules/mob/living/carbon/human/species_types/humans.dm +++ b/code/modules/mob/living/carbon/human/species_types/humans.dm @@ -3,29 +3,11 @@ id = "human" default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS) - default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None") + default_features = list("mcolor" = "FFF", "wings" = "None") use_skintones = 1 skinned_type = /obj/item/stack/sheet/animalhide/human disliked_food = GROSS | RAW liked_food = JUNKFOOD | FRIED - /datum/species/human/qualifies_for_rank(rank, list/features) return TRUE //Pure humans are always allowed in all roles. - -//Curiosity killed the cat's wagging tail. -/datum/species/human/spec_death(gibbed, mob/living/carbon/human/H) - if(H) - H.endTailWag() - -/datum/species/human/spec_stun(mob/living/carbon/human/H,amount) - if(H) - H.endTailWag() - . = ..() - -/datum/species/human/on_species_gain(mob/living/carbon/human/H, datum/species/old_species) - if(H.dna.features["ears"] == "Cat") - mutantears = /obj/item/organ/ears/cat - if(H.dna.features["tail_human"] == "Cat") - mutanttail = /obj/item/organ/tail/cat - ..() 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 39db4d7097..5bf752436f 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -38,13 +38,35 @@ //I wag in death /datum/species/lizard/spec_death(gibbed, mob/living/carbon/human/H) if(H) - H.endTailWag() + stop_wagging_tail(H) /datum/species/lizard/spec_stun(mob/living/carbon/human/H,amount) if(H) - H.endTailWag() + stop_wagging_tail(H) . = ..() +/datum/species/lizard/can_wag_tail(mob/living/carbon/human/H) + return ("tail_lizard" in mutant_bodyparts) || ("waggingtail_lizard" in mutant_bodyparts) + +/datum/species/lizard/is_wagging_tail(mob/living/carbon/human/H) + return ("waggingtail_lizard" in mutant_bodyparts) + +/datum/species/lizard/start_wagging_tail(mob/living/carbon/human/H) + if("tail_lizard" in mutant_bodyparts) + mutant_bodyparts -= "tail_lizard" + mutant_bodyparts -= "spines" + mutant_bodyparts |= "waggingtail_lizard" + mutant_bodyparts |= "waggingspines" + H.update_body() + +/datum/species/lizard/stop_wagging_tail(mob/living/carbon/human/H) + if("waggingtail_lizard" in mutant_bodyparts) + mutant_bodyparts -= "waggingtail_lizard" + mutant_bodyparts -= "waggingspines" + mutant_bodyparts |= "tail_lizard" + mutant_bodyparts |= "spines" + H.update_body() + /* Lizard subspecies: ASHWALKERS */ 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 e3a72601ed..d079080eaa 100644 --- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm +++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm @@ -7,7 +7,7 @@ sexes = 0 meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton species_traits = list(NOBLOOD) - inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT) + 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) inherent_biotypes = list(MOB_UNDEAD, MOB_HUMANOID) mutanttongue = /obj/item/organ/tongue/bone damage_overlay_type = ""//let's not show bloody wounds or burns over bones. diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index e10be34239..d3a6bb183a 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -9,7 +9,7 @@ blacklisted = 1 meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/zombie species_traits = list(NOBLOOD,NOZOMBIE,NOTRANSSTING) - inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NOBREATH,TRAIT_NODEATH) + inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NOBREATH,TRAIT_NODEATH,TRAIT_FAKEDEATH) inherent_biotypes = list(MOB_UNDEAD, MOB_HUMANOID) mutanttongue = /obj/item/organ/tongue/zombie var/static/list/spooks = list('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg','sound/hallucinations/veryfar_noise.ogg','sound/hallucinations/wail.ogg') diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index b2b470bca5..8ea3b1ce4e 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -11,7 +11,12 @@ if(stat != DEAD) //Reagent processing needs to come before breathing, to prevent edge cases. handle_organs() - if(..()) //not dead + . = ..() + + if (QDELETED(src)) + return + + if(.) //not dead handle_blood() if(stat != DEAD) @@ -59,7 +64,7 @@ if(health <= HEALTH_THRESHOLD_FULLCRIT || (pulledby && pulledby.grab_state >= GRAB_KILL)) losebreath++ //You can't breath at all when in critical or when being choked, so you're going to miss a breath - else if(health <= crit_modifier()) + else if(health <= crit_threshold) losebreath += 0.25 //You're having trouble breathing in soft crit, so you'll miss a breath one in four times //Suffocate @@ -154,7 +159,7 @@ else //Enough oxygen failed_last_breath = 0 - if(health >= crit_modifier()) + if(health >= crit_threshold) adjustOxyLoss(-5) oxygen_used = breath_gases[/datum/gas/oxygen][MOLES] clear_alert("not_enough_oxy") @@ -424,6 +429,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put if(drunkenness) drunkenness = max(drunkenness - (drunkenness * 0.04), 0) if(drunkenness >= 6) + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "drunk", /datum/mood_event/drugs/drunk) if(prob(25)) slurring += 2 jitteriness = max(jitteriness - 3, 0) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index d1d9c4370e..23ba71d81b 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -14,8 +14,7 @@ unique_name = TRUE bodyparts = list(/obj/item/bodypart/chest/monkey, /obj/item/bodypart/head/monkey, /obj/item/bodypart/l_arm/monkey, /obj/item/bodypart/r_arm/monkey, /obj/item/bodypart/r_leg/monkey, /obj/item/bodypart/l_leg/monkey) - - + hud_type = /datum/hud/monkey /mob/living/carbon/monkey/Initialize(mapload, cubespawned=FALSE, mob/spawner) verbs += /mob/living/proc/mob_sleep @@ -27,7 +26,6 @@ //initialize limbs create_bodyparts() - create_internal_organs() . = ..() @@ -59,26 +57,31 @@ internal_organs += new /obj/item/organ/stomach ..() -/mob/living/carbon/monkey/movement_delay() - if(reagents) - if(reagents.has_reagent("morphine")) - return -1 - - if(reagents.has_reagent("nuka_cola")) - return -1 - +/mob/living/carbon/monkey/on_reagent_change() + . = ..() + remove_movespeed_modifier(MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD, TRUE) + var/amount + if(reagents.has_reagent("morphine")) + amount = -1 + if(reagents.has_reagent("nuka_cola")) + amount = -1 + if(amount) + add_movespeed_modifier(MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = amount) + +/mob/living/carbon/monkey/updatehealth() . = ..() + var/slow = 0 var/health_deficiency = (100 - health) if(health_deficiency >= 45) - . += (health_deficiency / 25) + slow += (health_deficiency / 25) + add_movespeed_modifier(MOVESPEED_ID_MONKEY_HEALTH_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = slow) +/mob/living/carbon/monkey/adjust_bodytemperature(amount) + . = ..() + var/slow = 0 if (bodytemperature < 283.222) - . += (283.222 - bodytemperature) / 10 * 1.75 - - var/static/config_monkey_delay - if(isnull(config_monkey_delay)) - config_monkey_delay = CONFIG_GET(number/monkey_delay) - . += config_monkey_delay + slow += (283.222 - bodytemperature) / 10 * 1.75 + add_movespeed_modifier(MOVESPEED_ID_MONKEY_TEMPERATURE_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = amount) /mob/living/carbon/monkey/Stat() ..() diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 77fd9cca71..c728b8c982 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -60,7 +60,7 @@ /datum/emote/living/cough/can_run_emote(mob/user, status_check = TRUE) . = ..() - if(user.reagents.get_reagent("menthol") || user.reagents.get_reagent("peppermint_patty")) + if(user.reagents && (user.reagents.get_reagent("menthol") || user.reagents.get_reagent("peppermint_patty"))) return FALSE /datum/emote/living/dance diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 817e3c3f3b..5a475da3a0 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -43,7 +43,10 @@ //Breathing, if applicable handle_breathing(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. + 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 if(stat != DEAD) //Random events (vomiting etc) @@ -159,4 +162,4 @@ /mob/living/proc/handle_high_gravity(gravity) if(gravity >= GRAVITY_DAMAGE_TRESHOLD) //Aka gravity values of 3 or more var/grav_stregth = gravity - GRAVITY_DAMAGE_TRESHOLD - adjustBruteLoss(min(grav_stregth,3)) \ No newline at end of file + adjustBruteLoss(min(grav_stregth,3)) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 3cd776c3da..0d08fdfb1a 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -150,6 +150,22 @@ if(prob(I.block_chance*2)) return 1 +/mob/living/get_photo_description(obj/item/camera/camera) + var/list/mob_details = list() + var/list/holding = list() + var/len = length(held_items) + if(len) + for(var/obj/item/I in held_items) + if(!holding.len) + holding += "They are holding \a [I]" + else if(held_items.Find(I) == len) + holding += ", and \a [I]." + else + holding += ", \a [I]" + holding += "." + mob_details += "You can also see [src] on the photo[health < (maxHealth * 0.75) ? ", looking a bit hurt":""][holding ? ". [holding.Join("")]":"."]." + return mob_details.Join("") + //Called when we bump onto an obj /mob/living/proc/ObjBump(obj/O) return @@ -259,7 +275,7 @@ /mob/living/pointed(atom/A as mob|obj|turf in view()) if(incapacitated()) return FALSE - if(has_trait(TRAIT_FAKEDEATH)) + if(has_trait(TRAIT_DEATHCOMA)) return FALSE if(!..()) return FALSE @@ -281,7 +297,7 @@ return TRUE /mob/living/proc/InCritical() - return (health <= crit_modifier() && (stat == SOFT_CRIT || stat == UNCONSCIOUS)) + return (health <= crit_threshold && (stat == SOFT_CRIT || stat == UNCONSCIOUS)) /mob/living/proc/InFullCritical() return (health <= HEALTH_THRESHOLD_FULLCRIT && stat == UNCONSCIOUS) @@ -476,27 +492,6 @@ if(lying && !buckled && prob(getBruteLoss()*200/maxHealth)) makeTrail(newloc, T, old_direction) -/mob/living/movement_delay(ignorewalk = 0) - . = 0 - if(isopenturf(loc) && !is_flying()) - var/turf/open/T = loc - . += T.slowdown - var/static/datum/config_entry/number/run_delay/config_run_delay - var/static/datum/config_entry/number/walk_delay/config_walk_delay - if(isnull(config_run_delay)) - config_run_delay = CONFIG_GET(number/run_delay) - config_walk_delay = CONFIG_GET(number/walk_delay) - if(ignorewalk) - . += config_run_delay.value_cache - else - switch(m_intent) - if(MOVE_INTENT_RUN) - if(drowsyness > 0) - . += 6 - . += config_run_delay.value_cache - if(MOVE_INTENT_WALK) - . += config_walk_delay.value_cache - /mob/living/proc/makeTrail(turf/target_turf, turf/start, direction) if(!has_gravity()) return @@ -807,7 +802,7 @@ var/stam = getStaminaLoss() if(stam) var/total_health = (health - stam) - if(total_health <= crit_modifier() && !stat && !IsKnockdown()) + if(total_health <= crit_threshold && !stat && !IsKnockdown()) to_chat(src, "You're too exhausted to keep going...") Knockdown(100) update_health_hud() @@ -965,7 +960,7 @@ //Updates canmove, lying and icons. Could perhaps do with a rename but I can't think of anything to describe it. //Robots, animals and brains have their own version so don't worry about them /mob/living/proc/update_canmove() - var/ko = IsKnockdown() || IsUnconscious() || (stat && (stat != SOFT_CRIT || pulledby)) || (has_trait(TRAIT_FAKEDEATH)) + var/ko = IsKnockdown() || IsUnconscious() || (stat && (stat != SOFT_CRIT || pulledby)) || (has_trait(TRAIT_DEATHCOMA)) var/move_and_fall = stat == SOFT_CRIT && !pulledby var/chokehold = pulledby && pulledby.grab_state >= GRAB_NECK var/buckle_lying = !(buckled && !buckled.buckle_lying) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 2823d60417..0d4258491d 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -61,9 +61,6 @@ else return 0 -/mob/living/proc/crit_modifier() - return HEALTH_THRESHOLD_CRIT - /mob/living/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked = FALSE) if(istype(AM, /obj/item)) var/obj/item/I = AM @@ -157,7 +154,11 @@ var/grab_upgrade_time = 30 visible_message("[user] starts to tighten [user.p_their()] grip on [src]!", \ "[user] starts to tighten [user.p_their()] grip on you!") - add_logs(user, src, "attempted to strangle", addition="grab") + switch(user.grab_state) + if(GRAB_AGGRESSIVE) + add_logs(user, src, "attempted to neck grab", addition="neck grab") + if(GRAB_NECK) + add_logs(user, src, "attempted to strangle", addition="kill grab") if(!do_mob(user, src, grab_upgrade_time)) return 0 if(!user.pulling || user.pulling != src || user.grab_state != old_grab_state || user.a_intent != INTENT_GRAB) @@ -178,7 +179,7 @@ if(!buckled && !density) Move(user.loc) if(GRAB_KILL) - add_logs(user, src, "strangled", addition="grab") + add_logs(user, src, "strangled", addition="kill grab") visible_message("[user] is strangling [src]!", \ "[user] is strangling you!") update_canmove() //we fall down diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index d0ae175151..fa38f831f0 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -20,6 +20,7 @@ var/fireloss = 0 //Burn damage caused by being way too hot, too cold or burnt. var/cloneloss = 0 //Damage caused by being cloned or ejected from the cloner early. slimes also deal cloneloss damage to victims var/staminaloss = 0 //Stamina damage, or exhaustion. You recover it slowly naturally, and are knocked down if it gets too high. Holodeck and hallucinations deal this. + var/crit_threshold = HEALTH_THRESHOLD_CRIT // when the mob goes from "normal" to crit var/confused = 0 //Makes the mob move in random directions. diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm new file mode 100644 index 0000000000..16c3aa6050 --- /dev/null +++ b/code/modules/mob/living/living_movement.dm @@ -0,0 +1,27 @@ +/mob/living/Moved() + . = ..() + update_turf_movespeed(loc) + +/mob/living/toggle_move_intent() + . = ..() + update_move_intent_slowdown() + +/mob/living/update_config_movespeed() + update_move_intent_slowdown() + return ..() + +/mob/living/proc/update_move_intent_slowdown() + var/mod = 0 + if(m_intent == MOVE_INTENT_WALK) + mod = CONFIG_GET(number/movedelay/walk_delay) + else + mod = CONFIG_GET(number/movedelay/run_delay) + if(!isnum(mod)) + mod = 1 + add_movespeed_modifier(MOVESPEED_ID_MOB_WALK_RUN_CONFIG_SPEED, TRUE, 100, override = TRUE, multiplicative_slowdown = mod) + +/mob/living/proc/update_turf_movespeed(turf/open/T) + if(isopenturf(T) && !is_flying()) + add_movespeed_modifier(MOVESPEED_ID_LIVING_TURF_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = T.slowdown) + else + remove_movespeed_modifier(MOVESPEED_ID_LIVING_TURF_SPEEDMOD) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 2f5e74e35d..6db29381cd 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -60,27 +60,26 @@ GLOBAL_LIST_INIT(department_radio_keys, list( )) /mob/living/proc/Ellipsis(original_msg, chance = 50, keep_words) - if(chance <= 0) - return "..." - if(chance >= 100) - return original_msg + if(chance <= 0) + return "..." + if(chance >= 100) + return original_msg - var/list - words = splittext(original_msg," ") - new_words = list() + var/list/words = splittext(original_msg," ") + var/list/new_words = list() - var/new_msg = "" + var/new_msg = "" - for(var/w in words) - if(prob(chance)) - new_words += "..." - if(!keep_words) - continue - new_words += w + for(var/w in words) + if(prob(chance)) + new_words += "..." + if(!keep_words) + continue + new_words += w - new_msg = jointext(new_words," ") + new_msg = jointext(new_words," ") - return new_msg + return new_msg /mob/living/say(message, bubble_type,var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE) var/static/list/crit_allowed_modes = list(MODE_WHISPER = TRUE, MODE_CHANGELING = TRUE, MODE_ALIEN = TRUE) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index e099a53b44..b7a3a69ca9 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -23,6 +23,7 @@ a_intent = INTENT_HARM //so we always get pushed instead of trying to swap sight = SEE_TURFS | SEE_MOBS | SEE_OBJS see_in_dark = 8 + hud_type = /datum/hud/ai med_hud = DATA_HUD_MEDICAL_BASIC sec_hud = DATA_HUD_SECURITY_BASIC d_hud = DATA_HUD_DIAGNOSTIC_ADVANCED @@ -327,7 +328,16 @@ /mob/living/silicon/ai/can_interact_with(atom/A) . = ..() - return . || (istype(loc, /obj/item/aicard))? (ISINRANGE(A.x, x - interaction_range, x + interaction_range) && ISINRANGE(A.y, y - interaction_range, y + interaction_range)): GLOB.cameranet.checkTurfVis(get_turf(A)) + if (.) + return + if (istype(loc, /obj/item/aicard)) + var/turf/T0 = get_turf(src) + var/turf/T1 = get_turf(A) + if (!T0 || ! T1) + return FALSE + return ISINRANGE(T1.x, T0.x - interaction_range, T0.x + interaction_range) && ISINRANGE(T1.y, T0.y - interaction_range, T0.y + interaction_range) + else + return GLOB.cameranet.checkTurfVis(get_turf(A)) /mob/living/silicon/ai/cancel_camera() view_core() @@ -621,10 +631,9 @@ return var/list/ai_emotions = list("Very Happy", "Happy", "Neutral", "Unsure", "Confused", "Sad", "BSOD", "Blank", "Problems?", "Awesome", "Facepalm", "Friend Computer", "Dorfy", "Blue Glow", "Red Glow") var/emote = input("Please, select a status!", "AI Status", null, null) in ai_emotions - for (var/M in GLOB.ai_status_displays) //change status of displays - if(istype(M, /obj/machinery/ai_status_display)) - var/obj/machinery/ai_status_display/AISD = M - AISD.emotion = emote + for (var/obj/machinery/ai_status_display/M in GLOB.ai_status_displays) //change status of displays + M.emotion = emote + M.update() if (emote == "Friend Computer") var/datum/radio_frequency/frequency = SSradio.return_frequency(FREQ_STATUS_DISPLAYS) diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm index e28d9d84df..8601907e06 100644 --- a/code/modules/mob/living/silicon/ai/death.dm +++ b/code/modules/mob/living/silicon/ai/death.dm @@ -28,8 +28,10 @@ for(var/obj/machinery/ai_status_display/O in GLOB.ai_status_displays) //change status if(src.key) O.mode = 2 - if(istype(loc, /obj/item/aicard)) - loc.icon_state = "aicard-404" + O.update() + + if(istype(loc, /obj/item/aicard)) + loc.icon_state = "aicard-404" /mob/living/silicon/ai/proc/ShutOffDoomsdayDevice() if(nuking) diff --git a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm index 8d5590def6..3fd4a7ad7f 100644 --- a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm +++ b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm @@ -91,7 +91,7 @@ GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new) for(var/chunk in remove) var/datum/camerachunk/c = chunk - c.remove(eye) + c.remove(eye, FALSE) for(var/chunk in add) var/datum/camerachunk/c = chunk diff --git a/code/modules/mob/living/silicon/ai/freelook/chunk.dm b/code/modules/mob/living/silicon/ai/freelook/chunk.dm index d83292f767..c2794394ed 100644 --- a/code/modules/mob/living/silicon/ai/freelook/chunk.dm +++ b/code/modules/mob/living/silicon/ai/freelook/chunk.dm @@ -26,10 +26,10 @@ // Remove an AI eye from the chunk, then update if changed. -/datum/camerachunk/proc/remove(mob/camera/aiEye/eye) +/datum/camerachunk/proc/remove(mob/camera/aiEye/eye, remove_static_with_last_chunk = TRUE) eye.visibleCameraChunks -= src seenby -= eye - if(!eye.visibleCameraChunks.len) + if(remove_static_with_last_chunk && !eye.visibleCameraChunks.len) var/client/client = eye.GetViewerClient() if(client) switch(eye.use_static) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 5a4f01a53c..896d8674be 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -75,13 +75,7 @@ var/overload_maxhealth = 0 canmove = FALSE var/silent = FALSE - var/hit_slowdown = 0 var/brightness_power = 5 - var/slowdown = 0 - -/mob/living/silicon/pai/movement_delay() - . = ..() - . += slowdown /mob/living/silicon/pai/can_unbuckle() return FALSE @@ -266,9 +260,9 @@ /mob/living/silicon/pai/Process_Spacemove(movement_dir = 0) . = ..() if(!.) - slowdown = 2 + add_movespeed_modifier(MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD, TRUE, 100, multiplicative_slowdown = 2) return TRUE - slowdown = initial(slowdown) + remove_movespeed_modifier(MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD, TRUE) return TRUE /mob/living/silicon/pai/examine(mob/user) @@ -293,7 +287,5 @@ health = maxHealth - getBruteLoss() - getFireLoss() update_stat() - /mob/living/silicon/pai/process() emitterhealth = CLAMP((emitterhealth + emitterregen), -50, emittermaxhealth) - hit_slowdown = CLAMP((hit_slowdown - 1), 0, 100) diff --git a/code/modules/mob/living/silicon/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm index 417a24cd68..f20ccbc730 100644 --- a/code/modules/mob/living/silicon/pai/pai_defense.dm +++ b/code/modules/mob/living/silicon/pai/pai_defense.dm @@ -64,7 +64,6 @@ if(emitterhealth < 0) fold_in(force = TRUE) to_chat(src, "The impact degrades your holochassis!") - hit_slowdown += amount return amount /mob/living/silicon/pai/adjustBruteLoss(amount, updating_health = TRUE, forced = FALSE) diff --git a/code/modules/mob/living/silicon/pai/pai_shell.dm b/code/modules/mob/living/silicon/pai/pai_shell.dm index 85f7fe6afc..99484f395e 100644 --- a/code/modules/mob/living/silicon/pai/pai_shell.dm +++ b/code/modules/mob/living/silicon/pai/pai_shell.dm @@ -103,10 +103,6 @@ set_light(0) to_chat(src, "You disable your integrated light.") -/mob/living/silicon/pai/movement_delay() - . = ..() - . += 1 //A bit slower than humans, so they're easier to smash - /mob/living/silicon/pai/mob_pickup(mob/living/L) var/obj/item/clothing/head/mob_holder/holder = new(get_turf(src), src, chassis, item_head_icon, item_lh_icon, item_rh_icon) if(!L.put_in_hands(holder)) diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm index 7eb241e01f..75e8fd317f 100644 --- a/code/modules/mob/living/silicon/robot/death.dm +++ b/code/modules/mob/living/silicon/robot/death.dm @@ -2,7 +2,7 @@ /mob/living/silicon/robot/gib_animation() new /obj/effect/temp_visual/gib_animation(loc, "gibbed-r") -/mob/living/silicon/robot/dust() +/mob/living/silicon/robot/dust(just_ash, drop_items, force) if(mmi) qdel(mmi) ..() diff --git a/code/modules/mob/living/silicon/robot/laws.dm b/code/modules/mob/living/silicon/robot/laws.dm index c03f68a648..f6143e9039 100644 --- a/code/modules/mob/living/silicon/robot/laws.dm +++ b/code/modules/mob/living/silicon/robot/laws.dm @@ -78,4 +78,5 @@ temp = master.supplied[index] if (length(temp) > 0) laws.supplied[index] = temp - return + + picturesync() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 5bffd451a9..546f1b9db9 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -8,6 +8,7 @@ bubble_icon = "robot" designation = "Default" //used for displaying the prefix & getting the current module of cyborg has_limbs = 1 + hud_type = /datum/hud/robot var/custom_name = "" var/braintype = "Cyborg" @@ -204,10 +205,6 @@ cell = null return ..() -/mob/living/silicon/robot/can_interact_with(atom/A) - . = ..() - return . || in_view_range(src, A) - /mob/living/silicon/robot/proc/pick_module() if(module.type != /obj/item/robot_module) return @@ -372,7 +369,13 @@ return !cleared /mob/living/silicon/robot/can_interact_with(atom/A) - return !low_power_mode && ISINRANGE(A.x, x - interaction_range, x + interaction_range) && ISINRANGE(A.y, y - interaction_range, y + interaction_range) + if (low_power_mode) + return FALSE + var/turf/T0 = get_turf(src) + var/turf/T1 = get_turf(A) + if (!T0 || ! T1) + return FALSE + return ISINRANGE(T1.x, T0.x - interaction_range, T0.x + interaction_range) && ISINRANGE(T1.y, T0.y - interaction_range, T0.y + interaction_range) /mob/living/silicon/robot/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/weldingtool) && (user.a_intent != INTENT_HARM || user == src)) @@ -1167,4 +1170,12 @@ lawsync() lawupdate = 1 return TRUE + picturesync() return FALSE + +/mob/living/silicon/robot/proc/picturesync() + if(connected_ai && connected_ai.aicamera && aicamera) + for(var/i in aicamera.stored) + connected_ai.aicamera.stored[i] = TRUE + for(var/i in connected_ai.aicamera.stored) + aicamera.stored[i] = TRUE diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm index a1f0dbf4be..12ec521ac2 100644 --- a/code/modules/mob/living/silicon/robot/robot_movement.dm +++ b/code/modules/mob/living/silicon/robot/robot_movement.dm @@ -3,13 +3,6 @@ return 1 return ..() -/mob/living/silicon/robot/movement_delay() - . = ..() - var/static/config_robot_delay - if(isnull(config_robot_delay)) - config_robot_delay = CONFIG_GET(number/robot_delay) - . += speed + config_robot_delay - /mob/living/silicon/robot/mob_negates_gravity() return magpulse diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 3fadd0d6c8..0e69db8f51 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -385,9 +385,9 @@ add_sensors() to_chat(src, "Sensor overlay activated.") -/mob/living/silicon/proc/GetPhoto() +/mob/living/silicon/proc/GetPhoto(mob/user) if (aicamera) - return aicamera.selectpicture(aicamera) + return aicamera.selectpicture(user) /mob/living/silicon/update_transform() var/matrix/ntransform = matrix(transform) //aka transform.Copy() diff --git a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm new file mode 100644 index 0000000000..6fde8cede8 --- /dev/null +++ b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm @@ -0,0 +1,150 @@ +/mob/living/simple_animal/bot/secbot/grievous //This bot is powerful. If you managed to get 4 eswords somehow, you deserve this horror. Emag him for best results. + name = "General Beepsky" + desc = "Is that a secbot with four eswords in its arms...?" + icon = 'icons/mob/aibots.dmi' + icon_state = "grievous" + health = 150 + maxHealth = 150 + baton_type = /obj/item/melee/transforming/energy/sword + base_speed = 4 //he's a fast fucker + var/obj/item/weapon + var/block_chance = 50 + + +/mob/living/simple_animal/bot/secbot/grievous/toy //A toy version of general beepsky! + name = "Genewul Bweepskee" + desc = "An adorable looking secbot with four toy swords taped to its arms" + health = 50 + maxHealth = 50 + baton_type = /obj/item/toy/sword + +/mob/living/simple_animal/bot/secbot/grievous/bullet_act(obj/item/projectile/P) + visible_message("[src] deflects [P] with its energy swords!") + playsound(src, 'sound/weapons/blade1.ogg', 50, TRUE) + return FALSE + +/mob/living/simple_animal/bot/secbot/grievous/Crossed(atom/movable/AM) + ..() + if(ismob(AM) && AM == target) + visible_message("[src] flails his swords and cuts [AM]!") + playsound(src,'sound/effects/beepskyspinsabre.ogg',100,TRUE,-1) + stun_attack(AM) + +/mob/living/simple_animal/bot/secbot/grievous/Initialize() + . = ..() + weapon = new baton_type(src) + weapon.attack_self(src) + +/mob/living/simple_animal/bot/secbot/grievous/Destroy() + QDEL_NULL(weapon) + return ..() + +/mob/living/simple_animal/bot/secbot/grievous/special_retaliate_after_attack(mob/user) + if(mode != BOT_HUNT) + return + if(prob(block_chance)) + visible_message("[src] deflects [user]'s attack with his energy swords!") + playsound(src, 'sound/weapons/blade1.ogg', 50, TRUE, -1) + return TRUE + +/mob/living/simple_animal/bot/secbot/grievous/stun_attack(mob/living/carbon/C) //Criminals don't deserve to live + weapon.attack(C, src) + playsound(src, 'sound/weapons/blade1.ogg', 50, TRUE, -1) + if(C.stat == DEAD) + addtimer(CALLBACK(src, .proc/update_icon), 2) + back_to_idle() + + +/mob/living/simple_animal/bot/secbot/grievous/handle_automated_action() + if(!on) + return + switch(mode) + if(BOT_IDLE) // idle + update_icon() + walk_to(src,0) + look_for_perp() // see if any criminals are in range + if(!mode && auto_patrol) // still idle, and set to patrol + mode = BOT_START_PATROL // switch to patrol mode + if(BOT_HUNT) // hunting for perp + update_icon() + playsound(src,'sound/effects/beepskyspinsabre.ogg',100,TRUE,-1) + // general beepsky doesn't give up so easily, jedi scum + if(frustration >= 20) + walk_to(src,0) + back_to_idle() + return + if(target) // make sure target exists + if(Adjacent(target) && isturf(target.loc)) // if right next to perp + target_lastloc = target.loc //stun_attack() can clear the target if they're dead, so this needs to be set first + stun_attack(target) + anchored = TRUE + return + else // not next to perp + var/turf/olddist = get_dist(src, target) + walk_to(src, target,1,4) + if((get_dist(src, target)) >= (olddist)) + frustration++ + else + frustration = 0 + else + back_to_idle() + + if(BOT_START_PATROL) + look_for_perp() + start_patrol() + + if(BOT_PATROL) + look_for_perp() + bot_patrol() + +/mob/living/simple_animal/bot/secbot/grievous/look_for_perp() + anchored = FALSE + var/judgement_criteria = judgement_criteria() + for (var/mob/living/carbon/C in view(7,src)) //Let's find us a criminal + if((C.stat) || (C.handcuffed)) + continue + + if((C.name == oldtarget_name) && (world.time < last_found + 100)) + continue + + threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) + + if(!threatlevel) + continue + + else if(threatlevel >= 4) + target = C + oldtarget_name = C.name + speak("Level [threatlevel] infraction alert!") + playsound(src, pick('sound/voice/bcriminal.ogg', 'sound/voice/bjustice.ogg', 'sound/voice/bfreeze.ogg'), 50, FALSE) + playsound(src,'sound/weapons/saberon.ogg',50,TRUE,-1) + visible_message("[src] ignites his energy swords!") + icon_state = "grievous-c" + visible_message("[src] points at [C.name]!") + mode = BOT_HUNT + INVOKE_ASYNC(src, .proc/handle_automated_action) + break + else + continue + + +/mob/living/simple_animal/bot/secbot/grievous/explode() + + walk_to(src,0) + visible_message("[src] lets out a huge cough as it blows apart!") + var/atom/Tsec = drop_location() + + var/obj/item/bot_assembly/secbot/Sa = new (Tsec) + Sa.build_step = 1 + Sa.add_overlay("hs_hole") + Sa.created_name = name + new /obj/item/assembly/prox_sensor(Tsec) + + if(prob(50)) + drop_part(robot_arm, Tsec) + + do_sparks(3, TRUE, src) + for(var/IS = 0 to 4) + drop_part(baton_type, Tsec) + new /obj/effect/decal/cleanable/oil(Tsec) + qdel(src) diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm index c9ece767a5..56d37f667c 100644 --- a/code/modules/mob/living/simple_animal/bot/construction.dm +++ b/code/modules/mob/living/simple_animal/bot/construction.dm @@ -379,6 +379,8 @@ icon_state = "helmet_signaler" item_state = "helmet" created_name = "Securitron" //To preserve the name if it's a unique securitron I guess + var/swordamt = 0 //If you're converting it into a grievousbot, how many swords have you attached + var/toyswordamt = 0 //honk /obj/item/bot_assembly/secbot/attackby(obj/item/I, mob/user, params) ..() @@ -441,6 +443,29 @@ S.robot_arm = robot_arm qdel(I) qdel(src) + if(istype(I, /obj/item/wrench)) + to_chat(user, "You adjust [src]'s arm slots to mount extra weapons") + build_step ++ + return + if(istype(I, /obj/item/toy/sword)) + if(toyswordamt < 3 && swordamt <= 0) + if(!user.temporarilyRemoveItemFromInventory(I)) + return + created_name = "General Beepsky" + name = "helmet/signaler/prox sensor/robot arm/toy sword assembly" + icon_state = "grievous_assembly" + to_chat(user, "You superglue [I] onto one of [src]'s arm slots.") + qdel(I) + toyswordamt ++ + else + if(!can_finish_build(I, user)) + return + to_chat(user, "You complete the Securitron!...Something seems a bit wrong with it..?") + var/mob/living/simple_animal/bot/secbot/grievous/toy/S = new(Tsec) + S.name = created_name + S.robot_arm = robot_arm + qdel(I) + qdel(src) else if(istype(I, /obj/item/screwdriver)) //deconstruct cut_overlay("hs_arm") @@ -448,3 +473,35 @@ robot_arm = null to_chat(user, "You remove [dropped_arm] from [src].") build_step-- + if(toyswordamt > 0 || toyswordamt) + icon_state = initial(icon_state) + to_chat(user, "The superglue binding [src]'s toy swords to its chassis snaps!") + for(var/IS in 1 to toyswordamt) + new /obj/item/toy/sword(Tsec) + + if(ASSEMBLY_FIFTH_STEP) + if(istype(I, /obj/item/melee/transforming/energy/sword/saber)) + if(swordamt < 3) + if(!user.temporarilyRemoveItemFromInventory(I)) + return + created_name = "General Beepsky" + name = "helmet/signaler/prox sensor/robot arm/energy sword assembly" + icon_state = "grievous_assembly" + to_chat(user, "You bolt [I] onto one of [src]'s arm slots.") + qdel(I) + swordamt ++ + else + if(!can_finish_build(I, user)) + return + to_chat(user, "You complete the Securitron!...Something seems a bit wrong with it..?") + var/mob/living/simple_animal/bot/secbot/grievous/S = new(Tsec) + S.name = created_name + S.robot_arm = robot_arm + qdel(I) + qdel(src) + else if(istype(I, /obj/item/screwdriver)) //deconstruct + build_step-- + icon_state = initial(icon_state) + to_chat(user, "You unbolt [src]'s energy swords") + for(var/IS in 1 to swordamt) + new /obj/item/melee/transforming/energy/sword/saber(Tsec) diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index e8a92dce9e..550bc78f38 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -26,7 +26,7 @@ var/lastfired = 0 var/shot_delay = 15 var/lasercolor = "" - var/disabled = 0//A holder for if it needs to be disabled, if true it will not seach for targets, shoot at targets, or move, currently only used for lasertag + var/disabled = FALSE //A holder for if it needs to be disabled, if true it will not seach for targets, shoot at targets, or move, currently only used for lasertag var/mob/living/carbon/target @@ -34,11 +34,11 @@ var/threatlevel = 0 var/target_lastloc //Loc of target when arrested. var/last_found //There's a delay - var/declare_arrests = 1 //When making an arrest, should it notify everyone wearing sechuds? - var/idcheck = 1 //If true, arrest people with no IDs - var/weaponscheck = 1 //If true, arrest people for weapons if they don't have access - var/check_records = 1 //Does it check security records? - var/arrest_type = 0 //If true, don't handcuff + var/declare_arrests = TRUE //When making an arrest, should it notify everyone wearing sechuds? + var/idcheck = TRUE //If true, arrest people with no IDs + var/weaponscheck = TRUE //If true, arrest people for weapons if they don't have access + var/check_records = TRUE //Does it check security records? + var/arrest_type = FALSE //If true, don't handcuff var/projectile = /obj/item/projectile/energy/electrode //Holder for projectile type var/shoot_sound = 'sound/weapons/taser.ogg' var/cell_type = /obj/item/stock_parts/cell @@ -199,7 +199,7 @@ Auto Patrol[]"}, to_chat(user, "You short out [src]'s target assessment circuits.") oldtarget_name = user.name audible_message("[src] buzzes oddly!") - declare_arrests = 0 + declare_arrests = FALSE icon_state = "[lasercolor]ed209[on]" set_weapon() @@ -357,7 +357,7 @@ Auto Patrol[]"}, target = C oldtarget_name = C.name speak("Level [threatlevel] infraction alert!") - playsound(loc, pick('sound/voice/ed209_20sec.ogg', 'sound/voice/edplaceholder.ogg'), 50, 0) + playsound(src, pick('sound/voice/ed209_20sec.ogg', 'sound/voice/edplaceholder.ogg'), 50, FALSE) visible_message("[src] points at [C.name]!") mode = BOT_HUNT spawn(0) @@ -447,7 +447,7 @@ Auto Patrol[]"}, return var/obj/item/projectile/A = new projectile (loc) - playsound(loc, shoot_sound, 50, 1) + playsound(src, shoot_sound, 50, TRUE) A.preparePixelProjectile(target, src) A.fire() @@ -538,7 +538,7 @@ Auto Patrol[]"}, shootAt(A) /mob/living/simple_animal/bot/ed209/proc/stun_attack(mob/living/carbon/C) - playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) + playsound(src, 'sound/weapons/egloves.ogg', 50, TRUE, -1) icon_state = "[lasercolor]ed209-c" spawn(2) icon_state = "[lasercolor]ed209[on]" @@ -558,12 +558,12 @@ Auto Patrol[]"}, /mob/living/simple_animal/bot/ed209/proc/cuff(mob/living/carbon/C) mode = BOT_ARREST - playsound(loc, 'sound/weapons/cablecuff.ogg', 30, 1, -2) + playsound(src, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2) C.visible_message("[src] is trying to put zipties on [C]!",\ "[src] is trying to put zipties on you!") spawn(60) - if( !Adjacent(C) || !isturf(C.loc) ) //if he's in a closet or not adjacent, we cancel cuffing. + if( !on || !Adjacent(C) || !isturf(C.loc) ) //if he's in a closet or not adjacent, we cancel cuffing. return if(!C.handcuffed) C.handcuffed = new /obj/item/restraints/handcuffs/cable/zipties/used(C) diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm index 65b78bf844..697d0b249d 100644 --- a/code/modules/mob/living/simple_animal/bot/honkbot.dm +++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm @@ -2,7 +2,7 @@ name = "\improper honkbot" desc = "A little robot. It looks happy with its bike horn." icon = 'icons/mob/aibots.dmi' - icon_state = "honkbot1" + icon_state = "honkbot" density = FALSE anchored = FALSE health = 25 @@ -39,7 +39,7 @@ /mob/living/simple_animal/bot/honkbot/Initialize() . = ..() - icon_state = "honkbot[on]" + update_icon() auto_patrol = TRUE var/datum/job/clown/J = new/datum/job/clown access_card.access += J.get_access() @@ -48,22 +48,19 @@ /mob/living/simple_animal/bot/honkbot/proc/spam_flag_false() //used for addtimer spam_flag = FALSE -/mob/living/simple_animal/bot/honkbot/proc/blink_end() //used for addtimer - icon_state = "honkbot[on]" - /mob/living/simple_animal/bot/honkbot/proc/sensor_blink() icon_state = "honkbot-c" - addtimer(CALLBACK(src, .proc/blink_end), 5) + addtimer(CALLBACK(src, .proc/update_icon), 5, TIMER_OVERRIDE|TIMER_UNIQUE) //honkbots react with sounds. /mob/living/simple_animal/bot/honkbot/proc/react_ping() - playsound(src, 'sound/machines/ping.ogg', 50, 1, -1) //the first sound upon creation! + playsound(src, 'sound/machines/ping.ogg', 50, TRUE, -1) //the first sound upon creation! spam_flag = TRUE sensor_blink() addtimer(CALLBACK(src, .proc/spam_flag_false), 18) // calibrates before starting the honk /mob/living/simple_animal/bot/honkbot/proc/react_buzz() - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 1, -1) + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE, -1) sensor_blink() /mob/living/simple_animal/bot/honkbot/bot_reset() @@ -123,7 +120,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, /mob/living/simple_animal/bot/honkbot/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/weldingtool) && user.a_intent != INTENT_HARM). + if(istype(W, /obj/item/weldingtool) && user.a_intent != INTENT_HARM) return if(!istype(W, /obj/item/screwdriver) && (W.force) && (!target) && (W.damtype != STAMINA) ) // Check for welding tool to fix #2432. retaliate(user) @@ -138,7 +135,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, oldtarget_name = user.name audible_message("[src] gives out an evil laugh!") playsound(src, 'sound/machines/honkbot_evil_laugh.ogg', 75, 1, -1) // evil laughter - icon_state = "honkbot[on]" + update_icon() /mob/living/simple_animal/bot/honkbot/bullet_act(obj/item/projectile/Proj) if((istype(Proj,/obj/item/projectile/beam)) || (istype(Proj,/obj/item/projectile/bullet) && (Proj.damage_type == BURN))||(Proj.damage_type == BRUTE) && (!Proj.nodamage && Proj.damage < health)) @@ -162,7 +159,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, /mob/living/simple_animal/bot/honkbot/hitby(atom/movable/AM, skipcatch = 0, hitpush = 1, blocked = 0) if(istype(AM, /obj/item)) - playsound(src, honksound, 50, 1, -1) + playsound(src, honksound, 50, TRUE, -1) var/obj/item/I = AM if(I.throwforce < health && I.thrownby && (istype(I.thrownby, /mob/living/carbon/human))) var/mob/living/carbon/human/H = I.thrownby @@ -172,7 +169,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, /mob/living/simple_animal/bot/honkbot/proc/bike_horn() //use bike_horn if (emagged <= 1) if (!spam_flag) - playsound(src, honksound, 50, 1, -1) + playsound(src, honksound, 50, TRUE, -1) spam_flag = TRUE //prevent spam sensor_blink() addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn) @@ -181,19 +178,19 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, playsound(src, "honkbot_e", 50, 0) spam_flag = TRUE // prevent spam icon_state = "honkbot-e" - addtimer(CALLBACK(src, .proc/blink_end), 30) + addtimer(CALLBACK(src, .proc/update_icon), 30, TIMER_OVERRIDE|TIMER_UNIQUE) addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn) /mob/living/simple_animal/bot/honkbot/proc/honk_attack(mob/living/carbon/C) // horn attack if(!spam_flag) - playsound(loc, honksound, 50, 1, -1) + playsound(loc, honksound, 50, TRUE, -1) spam_flag = TRUE // prevent spam sensor_blink() addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn) /mob/living/simple_animal/bot/honkbot/proc/stun_attack(mob/living/carbon/C) // airhorn stun if(!spam_flag) - playsound(loc, 'sound/items/AirHorn.ogg', 100, 1, -1) //HEEEEEEEEEEEENK!! + playsound(src, 'sound/items/AirHorn.ogg', 100, TRUE, -1) //HEEEEEEEEEEEENK!! sensor_blink() if(spam_flag == 0) if(ishuman(C)) diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 5249fd5a54..dfcd6ae991 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -2,7 +2,7 @@ name = "\improper Securitron" desc = "A little security robot. He looks less than thrilled." icon = 'icons/mob/aibots.dmi' - icon_state = "secbot0" + icon_state = "secbot" density = FALSE anchored = FALSE health = 25 @@ -24,21 +24,21 @@ var/baton_type = /obj/item/melee/baton var/mob/living/carbon/target var/oldtarget_name - var/threatlevel = 0 + var/threatlevel = FALSE var/target_lastloc //Loc of target when arrested. var/last_found //There's a delay - var/declare_arrests = 1 //When making an arrest, should it notify everyone on the security channel? - var/idcheck = 0 //If true, arrest people with no IDs - var/weaponscheck = 0 //If true, arrest people for weapons if they lack access - var/check_records = 1 //Does it check security records? - var/arrest_type = 0 //If true, don't handcuff + var/declare_arrests = TRUE //When making an arrest, should it notify everyone on the security channel? + var/idcheck = FALSE //If true, arrest people with no IDs + var/weaponscheck = FALSE //If true, arrest people for weapons if they lack access + var/check_records = TRUE //Does it check security records? + var/arrest_type = FALSE //If true, don't handcuff /mob/living/simple_animal/bot/secbot/beepsky name = "Officer Beep O'sky" desc = "It's Officer Beep O'sky! Powered by a potato and a shot of whiskey." - idcheck = 0 - weaponscheck = 0 - auto_patrol = 1 + idcheck = FALSE + weaponscheck = FALSE + auto_patrol = TRUE /mob/living/simple_animal/bot/secbot/beepsky/jr name = "Officer Pipsqueak" @@ -65,7 +65,7 @@ /mob/living/simple_animal/bot/secbot/Initialize() . = ..() - icon_state = "secbot[on]" + update_icon() var/datum/job/detective/J = new/datum/job/detective access_card.access += J.get_access() prev_access = access_card.access @@ -74,13 +74,15 @@ var/datum/atom_hud/secsensor = GLOB.huds[DATA_HUD_SECURITY_ADVANCED] secsensor.add_hud_to(src) -/mob/living/simple_animal/bot/secbot/turn_on() +/mob/living/simple_animal/bot/secbot/update_icon() + if(mode == BOT_HUNT) + icon_state = "[initial(icon_state)]-c" + return ..() - icon_state = "secbot[on]" /mob/living/simple_animal/bot/secbot/turn_off() ..() - icon_state = "secbot[on]" + mode = BOT_IDLE /mob/living/simple_animal/bot/secbot/bot_reset() ..() @@ -167,9 +169,14 @@ Auto Patrol: []"}, final = final|JUDGE_EMAGGED return final +/mob/living/simple_animal/bot/secbot/proc/special_retaliate_after_attack(mob/user) //allows special actions to take place after being attacked. + return + /mob/living/simple_animal/bot/secbot/attack_hand(mob/living/carbon/human/H) if((H.a_intent == INTENT_HARM) || (H.a_intent == INTENT_DISARM)) retaliate(H) + if(special_retaliate_after_attack(H)) + return return ..() @@ -179,6 +186,8 @@ Auto Patrol: []"}, return if(!istype(W, /obj/item/screwdriver) && (W.force) && (!target) && (W.damtype != STAMINA) ) // Added check for welding tool to fix #2432. Welding tool behavior is handled in superclass. retaliate(user) + if(special_retaliate_after_attack(user)) + return /mob/living/simple_animal/bot/secbot/emag_act(mob/user) ..() @@ -187,8 +196,8 @@ Auto Patrol: []"}, to_chat(user, "You short out [src]'s target assessment circuits.") oldtarget_name = user.name audible_message("[src] buzzes oddly!") - declare_arrests = 0 - icon_state = "secbot[on]" + declare_arrests = FALSE + update_icon() /mob/living/simple_animal/bot/secbot/bullet_act(obj/item/projectile/Proj) if(istype(Proj , /obj/item/projectile/beam)||istype(Proj, /obj/item/projectile/bullet)) @@ -222,13 +231,13 @@ Auto Patrol: []"}, /mob/living/simple_animal/bot/secbot/proc/cuff(mob/living/carbon/C) mode = BOT_ARREST - playsound(loc, 'sound/weapons/cablecuff.ogg', 30, 1, -2) + playsound(src, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2) C.visible_message("[src] is trying to put zipties on [C]!",\ "[src] is trying to put zipties on you!") addtimer(CALLBACK(src, .proc/attempt_handcuff, C), 60) /mob/living/simple_animal/bot/secbot/proc/attempt_handcuff(mob/living/carbon/C) - if( !Adjacent(C) || !isturf(C.loc) ) //if he's in a closet or not adjacent, we cancel cuffing. + if( !on || !Adjacent(C) || !isturf(C.loc) ) //if he's in a closet or not adjacent, we cancel cuffing. return if(!C.handcuffed) C.handcuffed = new /obj/item/restraints/handcuffs/cable/zipties/used(C) @@ -236,14 +245,11 @@ Auto Patrol: []"}, playsound(src, "law", 50, 0) back_to_idle() -/mob/living/simple_animal/bot/secbot/proc/update_onsprite() - icon_state = "secbot[on]" - /mob/living/simple_animal/bot/secbot/proc/stun_attack(mob/living/carbon/C) var/judgement_criteria = judgement_criteria() - playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) + playsound(src, 'sound/weapons/egloves.ogg', 50, TRUE, -1) icon_state = "secbot-c" - addtimer(CALLBACK(src, .proc/update_onsprite), 2) + addtimer(CALLBACK(src, .proc/update_icon), 2) var/threat = 5 if(ishuman(C)) C.stuttering = 5 @@ -384,7 +390,7 @@ Auto Patrol: []"}, target = C oldtarget_name = C.name speak("Level [threatlevel] infraction alert!") - playsound(loc, pick('sound/voice/bcriminal.ogg', 'sound/voice/bjustice.ogg', 'sound/voice/bfreeze.ogg'), 50, 0) + playsound(src, pick('sound/voice/bcriminal.ogg', 'sound/voice/bjustice.ogg', 'sound/voice/bfreeze.ogg'), 50, FALSE) visible_message("[src] points at [C.name]!") mode = BOT_HUNT INVOKE_ASYNC(src, .proc/handle_automated_action) diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 3141477e81..4272e45500 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -32,6 +32,7 @@ del_on_death = TRUE initial_language_holder = /datum/language_holder/construct deathmessage = "collapses in a shattered heap." + hud_type = /datum/hud/constructs var/list/construct_spells = list() var/playstyle_string = "You are a generic construct! Your job is to not exist, and you should probably adminhelp this." var/master = null diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index 11f095605d..de952e0181 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -75,7 +75,7 @@ /obj/effect/mob_spawn/human/corpse/pirate name = "Pirate" - skin_tone = "Caucasian1" //all pirates are white because it's easier that way + skin_tone = "caucasian1" //all pirates are white because it's easier that way outfit = /datum/outfit/piratecorpse hair_style = "Bald" facial_hair_style = "Shaved" @@ -154,7 +154,7 @@ outfit = /datum/outfit/wizardcorpse hair_style = "Bald" facial_hair_style = "Long Beard" - skin_tone = "Caucasian1" + skin_tone = "caucasian1" /datum/outfit/wizardcorpse name = "Space Wizard Corpse" diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 0787e536cb..99c598f95f 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -45,6 +45,16 @@ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/pug = 3) gold_core_spawnable = FRIENDLY_SPAWN collar_type = "pug" + +/mob/living/simple_animal/pet/dog/corgi/exoticcorgi + name = "Exotic Corgi" + desc = "As cute as it is colorful!" + icon = 'icons/mob/pets.dmi' + icon_state = "corgigrey" + icon_living = "corgigrey" + icon_dead = "corgigrey_dead" + animal_species = /mob/living/simple_animal/pet/dog/corgi/exoticcorgi + nofur = TRUE /mob/living/simple_animal/pet/dog/Initialize() . = ..() @@ -58,6 +68,10 @@ . = ..() regenerate_icons() +/mob/living/simple_animal/pet/dog/corgi/exoticcorgi/Initialize() + . = ..() + var/newcolor = rgb(rand(0, 255), rand(0, 255), rand(0, 255)) + add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY) /mob/living/simple_animal/pet/dog/corgi/death(gibbed) ..(gibbed) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index 613d348016..cf3742fcc5 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -59,7 +59,7 @@ var/laws = \ "1. You may not involve yourself in the matters of another being, even if such matters conflict with Law Two or Law Three, unless the other being is another Drone.\n"+\ "2. You may not harm any being, regardless of intent or circumstance.\n"+\ - "3. Your goals are to build, maintain, repair, improve, and provide power to the best of your abilities, You must never actively work against these goals." + "3. Your goals are to actively build, maintain, repair, improve, and provide power to the best of your abilities within the facility that housed your activation." //for derelict drones so they don't go to station. var/heavy_emp_damage = 25 //Amount of damage sustained if hit by a heavy EMP pulse var/alarms = list("Atmosphere" = list(), "Fire" = list(), "Power" = list()) var/obj/item/internal_storage //Drones can store one item, of any size/type in their body diff --git a/code/modules/mob/living/simple_animal/friendly/penguin.dm b/code/modules/mob/living/simple_animal/friendly/penguin.dm index 0bf9f4732d..7f69be2d96 100644 --- a/code/modules/mob/living/simple_animal/friendly/penguin.dm +++ b/code/modules/mob/living/simple_animal/friendly/penguin.dm @@ -18,7 +18,7 @@ /mob/living/simple_animal/pet/penguin/emperor name = "Emperor penguin" real_name = "penguin" - desc = "Emperor of all he surveys." + desc = "Emperor of all they survey." icon_state = "penguin" icon_living = "penguin" icon_dead = "penguin_dead" diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 648db14941..f5584ea121 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -38,6 +38,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians melee_damage_upper = 15 butcher_results = list(/obj/item/ectoplasm = 1) AIStatus = AI_OFF + hud_type = /datum/hud/guardian dextrous_hud_type = /datum/hud/dextrous/guardian //if we're set to dextrous, account for it. var/list/guardian_overlays[GUARDIAN_TOTAL_LAYERS] var/reset = 0 //if the summoner has reset the guardian already diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index d8edf7fe67..c7b46e6aed 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -209,14 +209,14 @@ var/datum/reagent/R = pick(typesof(/datum/reagent/toxin)) assign_reagent(GLOB.chemical_reagents_list[initial(R.id)]) - /mob/living/simple_animal/hostile/poison/bees/queen - name = "queen bee" - desc = "She's the queen of bees, BZZ BZZ!" - icon_base = "queen" - isqueen = TRUE +/mob/living/simple_animal/hostile/poison/bees/queen + name = "queen bee" + desc = "She's the queen of bees, BZZ BZZ!" + icon_base = "queen" + isqueen = TRUE - //the Queen doesn't leave the box on her own, and she CERTAINLY doesn't pollinate by herself +//the Queen doesn't leave the box on her own, and she CERTAINLY doesn't pollinate by herself /mob/living/simple_animal/hostile/poison/bees/queen/Found(atom/A) return FALSE @@ -295,3 +295,10 @@ forceMove(beehome.drop_location()) else ..() + +/mob/living/simple_animal/hostile/poison/bees/short + desc = "These bees seem unstable and won't survive for long." + +/mob/living/simple_animal/hostile/poison/bees/short/Initialize() + . = ..() + addtimer(CALLBACK(src, .proc/death), 50 SECONDS) diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index 1a92e0b69f..3f0c468d26 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -48,7 +48,7 @@ icon_living = "ranged" icon_dead = "ranged" ranged = 1 - rapid = 1 + rapid = 3 retreat_distance = 5 minimum_distance = 5 diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 017af381f0..d8635060ee 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -4,8 +4,16 @@ obj_damage = 40 environment_smash = ENVIRONMENT_SMASH_STRUCTURES //Bitflags. Set to ENVIRONMENT_SMASH_STRUCTURES to break closets,tables,racks, etc; ENVIRONMENT_SMASH_WALLS for walls; ENVIRONMENT_SMASH_RWALLS for rwalls var/atom/target - var/ranged = 0 - var/rapid = 0 + var/ranged = FALSE + var/rapid = 0 //How many shots per volley. + var/rapid_fire_delay = 2 //Time between rapid fire shots + + var/dodging = FALSE + var/approaching_target = FALSE //We should dodge now + var/in_melee = FALSE //We should sidestep now + var/dodge_prob = 30 + var/sidestep_per_cycle = 1 //How many sidesteps per npcpool cycle when in melee + var/projectiletype //set ONLY it and NULLIFY casingtype var, if we have ONLY projectile var/projectilesound var/casingtype //set ONLY it and NULLIFY projectiletype, if we have projectile IN CASING @@ -14,6 +22,9 @@ var/list/emote_taunt = list() var/taunt_chance = 0 + var/rapid_melee = 1 //Number of melee attacks between each npc pool tick. Spread evenly. + var/melee_queue_distance = 4 //If target is close enough start preparing to hit them if we have rapid_melee enabled + var/ranged_message = "fires" //Fluff text for ranged mobs var/ranged_cooldown = 0 //What the current cooldown on ranged attacks is, generally world.time + ranged_cooldown_time var/ranged_cooldown_time = 30 //How long, in deciseconds, the cooldown of ranged attacks is @@ -40,7 +51,6 @@ var/lose_patience_timer_id //id for a timer to call LoseTarget(), used to stop mobs fixating on a target they can't reach var/lose_patience_timeout = 300 //30 seconds by default, so there's no major changes to AI behaviour, beyond actually bailing if stuck forever - /mob/living/simple_animal/hostile/Initialize() . = ..() @@ -75,6 +85,34 @@ toggle_ai(AI_IDLE) // otherwise we go idle return 1 +/mob/living/simple_animal/hostile/handle_automated_movement() + . = ..() + if(dodging && target && in_melee && isturf(loc) && isturf(target.loc)) + var/datum/cb = CALLBACK(src,.proc/sidestep) + if(sidestep_per_cycle > 1) //For more than one just spread them equally - this could changed to some sensible distribution later + var/sidestep_delay = SSnpcpool.wait / sidestep_per_cycle + for(var/i in 1 to sidestep_per_cycle) + addtimer(cb, (i - 1)*sidestep_delay) + else //Otherwise randomize it to make the players guessing. + addtimer(cb,rand(1,SSnpcpool.wait)) + +/mob/living/simple_animal/hostile/proc/sidestep() + if(!target || !isturf(target.loc) || !isturf(loc) || stat == DEAD) + return + var/target_dir = get_dir(src,target) + + var/static/list/cardinal_sidestep_directions = list(-90,-45,0,45,90) + var/static/list/diagonal_sidestep_directions = list(-45,0,45) + var/chosen_dir = 0 + if (target_dir & (target_dir - 1)) + chosen_dir = pick(diagonal_sidestep_directions) + else + chosen_dir = pick(cardinal_sidestep_directions) + if(chosen_dir) + chosen_dir = turn(target_dir,chosen_dir) + 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) if(stat == CONSCIOUS && !target && AIStatus != AI_OFF && !client && user) FindTarget(list(user), 1) @@ -220,7 +258,23 @@ Aggro() return 1 -/mob/living/simple_animal/hostile/proc/MoveToTarget(var/list/possible_targets)//Step 5, handle movement between us and our target +//What we do after closing in +/mob/living/simple_animal/hostile/proc/MeleeAction(patience = TRUE) + if(rapid_melee > 1) + var/datum/callback/cb = CALLBACK(src, .proc/CheckAndAttack) + var/delay = SSnpcpool.wait / rapid_melee + for(var/i in 1 to rapid_melee) + addtimer(cb, (i - 1)*delay) + else + AttackingTarget() + if(patience) + GainPatience() + +/mob/living/simple_animal/hostile/proc/CheckAndAttack() + if(target && targets_from && isturf(targets_from.loc) && target.Adjacent(targets_from) && !incapacitated()) + AttackingTarget() + +/mob/living/simple_animal/hostile/proc/MoveToTarget(list/possible_targets)//Step 5, handle movement between us and our target stop_automated_movement = 1 if(!target || !CanAttack(target)) LoseTarget() @@ -246,8 +300,11 @@ Goto(target,move_to_delay,minimum_distance) if(target) if(targets_from && isturf(targets_from.loc) && target.Adjacent(targets_from)) //If they're next to us, attack - AttackingTarget() - GainPatience() + MeleeAction() + else + if(rapid_melee > 1 && target_distance <= melee_queue_distance) + MeleeAction(FALSE) + in_melee = FALSE //If we're just preparing to strike do not enter sidestep mode return 1 return 0 if(environment_smash) @@ -265,6 +322,10 @@ return 0 /mob/living/simple_animal/hostile/proc/Goto(target, delay, minimum_distance) + if(target == src.target) + approaching_target = TRUE + else + approaching_target = FALSE walk_to(src, target, minimum_distance, delay) /mob/living/simple_animal/hostile/adjustHealth(amount, updating_health = TRUE, forced = FALSE) @@ -281,6 +342,7 @@ /mob/living/simple_animal/hostile/proc/AttackingTarget() + in_melee = TRUE return target.attack_animal(src) /mob/living/simple_animal/hostile/proc/Aggro() @@ -297,6 +359,8 @@ /mob/living/simple_animal/hostile/proc/LoseTarget() target = null + approaching_target = FALSE + in_melee = FALSE walk(src, 0) LoseAggro() @@ -330,11 +394,11 @@ return visible_message("[src] [ranged_message] at [A]!") - if(rapid) + + if(rapid > 1) var/datum/callback/cb = CALLBACK(src, .proc/Shoot, A) - addtimer(cb, 1) - addtimer(cb, 4) - addtimer(cb, 6) + for(var/i in 1 to rapid) + addtimer(cb, (i - 1)*rapid_fire_delay) else Shoot(A) ranged_cooldown = world.time + ranged_cooldown_time @@ -367,6 +431,22 @@ return iswallturf(T) || ismineralturf(T) +/mob/living/simple_animal/hostile/Move(atom/newloc, dir , step_x , step_y) + if(dodging && approaching_target && prob(dodge_prob) && moving_diagonally == 0 && isturf(loc) && isturf(newloc)) + return dodge(newloc,dir) + else + return ..() + +/mob/living/simple_animal/hostile/proc/dodge(moving_to,move_direction) + //Assuming we move towards the target we want to swerve toward them to get closer + var/cdir = turn(move_direction,45) + var/ccdir = turn(move_direction,-45) + dodging = FALSE + . = Move(get_step(loc,pick(cdir,ccdir))) + if(!.)//Can't dodge there so we just carry on + . = Move(moving_to,move_direction) + dodging = TRUE + /mob/living/simple_animal/hostile/proc/DestroyObjectsInDirection(direction) var/turf/T = get_step(targets_from, direction) if(T && T.Adjacent(targets_from)) 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 bc716c148e..ea5b7e5a1b 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm @@ -203,7 +203,7 @@ if(AIStatus == AI_ON && ranged_cooldown <= world.time) projectile_ready = TRUE update_icons() - throw_at(new_turf, max(3,get_dist(src,new_turf)), 1, src, FALSE, callback = CALLBACK(src, .FinishHop)) + throw_at(new_turf, max(3,get_dist(src,new_turf)), 1, src, FALSE, callback = CALLBACK(src, .proc/FinishHop)) /mob/living/simple_animal/hostile/jungle/leaper/proc/FinishHop() density = TRUE 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 04a1d860d8..46998fee92 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -235,8 +235,6 @@ Difficulty: Very Hard desc = "A completely indestructible chunk of crystal, rumoured to predate the start of this universe. It looks like you could store things inside it." icon = 'icons/obj/lavaland/artefacts.dmi' icon_state = "blackbox" - icon_on = "blackbox" - icon_off = "blackbox" light_range = 8 max_n_of_items = INFINITY resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF 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 9aee15d9b6..28e8260bed 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -243,7 +243,7 @@ Difficulty: Medium playsound(loc, 'sound/effects/meteorimpact.ogg', 200, 1) for(var/mob/living/L in orange(1, src)) if(L.stat) - visible_message("[src] slams down on [L], crushing them!") + visible_message("[src] slams down on [L], crushing [L.p_them()]!") L.gib() else L.adjustBruteLoss(75) 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 a963e96624..2710d58a67 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -104,7 +104,7 @@ Difficulty: Medium adjustHealth(-maxHealth) //heal ourself to full in prep for splitting var/mob/living/simple_animal/hostile/megafauna/legion/L = new(loc) - L.maxHealth = maxHealth * 0.6 + L.maxHealth = round(maxHealth * 0.6,DAMAGE_PRECISION) maxHealth = L.maxHealth L.health = L.maxHealth diff --git a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm index c02b9259b8..b170ae0574 100644 --- a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm +++ b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm @@ -53,7 +53,7 @@ /mob/living/simple_animal/hostile/nanotrasen/ranged/smg icon_state = "nanotrasenrangedsmg" icon_living = "nanotrasenrangedsmg" - rapid = 1 + rapid = 3 casingtype = /obj/item/ammo_casing/c46x30mm projectilesound = 'sound/weapons/gunshot_smg.ogg' loot = list(/obj/item/gun/ballistic/automatic/wt550, diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm index 714d2c7e33..9939834fec 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm @@ -4,7 +4,7 @@ icon = 'icons/mob/simple_human.dmi' icon_state = "piratemelee" icon_living = "piratemelee" - icon_dead = "piratemelee_dead" + icon_dead = "pirate_dead" mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) speak_chance = 0 turns_per_move = 5 @@ -14,15 +14,12 @@ speed = 0 maxHealth = 100 health = 100 - spacewalk = TRUE - harm_intent_damage = 5 - obj_damage = 60 - melee_damage_lower = 30 - melee_damage_upper = 30 - attacktext = "slashes" - attack_sound = 'sound/weapons/bladeslice.ogg' - + melee_damage_lower = 10 + melee_damage_upper = 10 + attacktext = "punches" + 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) unsuitable_atmos_damage = 15 speak_emote = list("yarrs") @@ -30,51 +27,63 @@ /obj/item/melee/transforming/energy/sword/pirate) del_on_death = 1 faction = list("pirate") + + +/mob/living/simple_animal/hostile/pirate/melee + name = "Pirate Swashbuckler" + icon_state = "piratemelee" + icon_living = "piratemelee" + icon_dead = "piratemelee_dead" + melee_damage_lower = 30 + melee_damage_upper = 30 + armour_penetration = 35 + attacktext = "slashes" + attack_sound = 'sound/weapons/blade1.ogg' var/obj/effect/light_emitter/red_energy_sword/sord -/mob/living/simple_animal/hostile/pirate/Initialize() +/mob/living/simple_animal/hostile/pirate/melee/space + name = "Space Pirate Swashbuckler" + icon_state = "piratespace" + icon_living = "piratespace" + icon_dead = "piratespace_dead" + 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 + speed = 1 + spacewalk = TRUE + +/mob/living/simple_animal/hostile/pirate/melee/Initialize() . = ..() sord = new(src) -/mob/living/simple_animal/hostile/pirate/Destroy() +/mob/living/simple_animal/hostile/pirate/melee/Destroy() QDEL_NULL(sord) return ..() +/mob/living/simple_animal/hostile/pirate/melee/Initialize() + . = ..() + set_light(2) + /mob/living/simple_animal/hostile/pirate/ranged name = "Pirate Gunner" icon_state = "pirateranged" icon_living = "pirateranged" - icon_dead = "piratemelee_dead" + icon_dead = "pirateranged_dead" projectilesound = 'sound/weapons/laser.ogg' ranged = 1 - rapid = 1 + rapid = 2 + rapid_fire_delay = 6 retreat_distance = 5 minimum_distance = 5 projectiletype = /obj/item/projectile/beam/laser loot = list(/obj/effect/mob_spawn/human/corpse/pirate/ranged, /obj/item/gun/energy/laser) -/mob/living/simple_animal/hostile/pirate/space - name = "Space Pirate" - icon_state = "piratespace" - icon_living = "piratespace" - 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 - speed = 1 - -/mob/living/simple_animal/hostile/pirate/space/Initialize() - . = ..() - set_light(3) - -/mob/living/simple_animal/hostile/pirate/space/ranged +/mob/living/simple_animal/hostile/pirate/ranged/space name = "Space Pirate Gunner" icon_state = "piratespaceranged" icon_living = "piratespaceranged" - projectilesound = 'sound/weapons/laser.ogg' - ranged = 1 - rapid = 1 - retreat_distance = 5 - minimum_distance = 5 - projectiletype = /obj/item/projectile/beam/laser - loot = list(/obj/effect/mob_spawn/human/corpse/pirate/ranged, - /obj/item/gun/energy/laser) + icon_dead = "piratespaceranged_dead" + 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 + speed = 1 + spacewalk = TRUE 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 4e4849297c..a132503786 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm @@ -64,7 +64,7 @@ icon_state = "nanotrasenrangedsmg" icon_living = "nanotrasenrangedsmg" vision_range = 9 - rapid = 1 + rapid = 3 ranged = 1 retreat_distance = 3 minimum_distance = 5 diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index 988e340053..1b4067196d 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -62,7 +62,7 @@ icon_living = "russianofficer" maxHealth = 65 health = 65 - rapid = 1 + rapid = 3 casingtype = /obj/item/ammo_casing/c9mm loot = list(/obj/effect/mob_spawn/human/corpse/russian/ranged/officer, /obj/item/gun/ballistic/automatic/pistol/APS) diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 515914645e..e642c45ebd 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -1,7 +1,7 @@ /* CONTENTS LINE 10 - BASE MOB - LINE 43 - SWORD AND SHIELD + LINE 50 - SWORD AND SHIELD LINE 95 - GUNS LINE 136 - MISC */ @@ -47,27 +47,82 @@ status_flags = CANPUSH del_on_death = 1 -///////////////Sword and shield//////////// +///////////////Melee//////////// + +/mob/living/simple_animal/hostile/syndicate/space + icon_state = "syndicate_space" + icon_living = "syndicate_space" + name = "Syndicate Commando" + maxHealth = 170 + health = 170 + 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 + speed = 1 + spacewalk = TRUE + +/mob/living/simple_animal/hostile/syndicate/space/Initialize() + . = ..() + set_light(4) + +/mob/living/simple_animal/hostile/syndicate/space/stormtrooper + icon_state = "syndicate_stormtrooper" + icon_living = "syndicate_stormtrooper" + name = "Syndicate Stormtrooper" + maxHealth = 250 + health = 250 /mob/living/simple_animal/hostile/syndicate/melee - melee_damage_lower = 25 - melee_damage_upper = 30 - icon_state = "syndicatemelee" - icon_living = "syndicatemelee" + melee_damage_lower = 15 + melee_damage_upper = 15 + icon_state = "syndicate_knife" + icon_living = "syndicate_knife" loot = list(/obj/effect/gibspawner/human) attacktext = "slashes" attack_sound = 'sound/weapons/bladeslice.ogg' - armour_penetration = 28 - light_color = LIGHT_COLOR_RED status_flags = 0 + +/mob/living/simple_animal/hostile/syndicate/melee/space + icon_state = "syndicate_space_knife" + icon_living = "syndicate_space_knife" + name = "Syndicate Commando" maxHealth = 170 health = 170 + 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 + speed = 1 spacewalk = TRUE -/mob/living/simple_animal/hostile/syndicate/melee/Initialize() +/mob/living/simple_animal/hostile/syndicate/melee/space/Initialize() + . = ..() + set_light(4) + +/mob/living/simple_animal/hostile/syndicate/melee/space/stormtrooper + icon_state = "syndicate_stormtrooper_knife" + icon_living = "syndicate_stormtrooper_knife" + name = "Syndicate Stormtrooper" + maxHealth = 250 + health = 250 + +/mob/living/simple_animal/hostile/syndicate/melee/sword + melee_damage_lower = 30 + melee_damage_upper = 30 + icon_state = "syndicate_sword" + icon_living = "syndicate_sword" + attacktext = "slashes" + attack_sound = 'sound/weapons/blade1.ogg' + armour_penetration = 35 + light_color = LIGHT_COLOR_RED + status_flags = 0 + var/obj/effect/light_emitter/red_energy_sword/sord + +/mob/living/simple_animal/hostile/syndicate/melee/sword/Initialize() . = ..() set_light(2) +/mob/living/simple_animal/hostile/syndicate/melee/sword/Destroy() + QDEL_NULL(sord) + return ..() + /mob/living/simple_animal/hostile/syndicate/melee/bullet_act(obj/item/projectile/Proj) if(!Proj) return @@ -77,79 +132,133 @@ visible_message("[src] blocks [Proj] with its shield!") return 0 - -/mob/living/simple_animal/hostile/syndicate/melee/space +/mob/living/simple_animal/hostile/syndicate/melee/sword/space + icon_state = "syndicate_space_sword" + icon_living = "syndicate_space_sword" + name = "Syndicate Commando" + maxHealth = 170 + health = 170 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 - icon_state = "syndicatemeleespace" - icon_living = "syndicatemeleespace" - name = "Syndicate Commando" - loot = list(/obj/effect/gibspawner/human) speed = 1 - var/obj/effect/light_emitter/red_energy_sword/sord + spacewalk = TRUE -/mob/living/simple_animal/hostile/syndicate/melee/space/Initialize() +/mob/living/simple_animal/hostile/syndicate/melee/sword/space/Initialize() . = ..() sord = new(src) set_light(4) -/mob/living/simple_animal/hostile/syndicate/melee/space/Destroy() +/mob/living/simple_animal/hostile/syndicate/melee/sword/space/Destroy() QDEL_NULL(sord) return ..() -/mob/living/simple_animal/hostile/syndicate/melee/space/stormtrooper - icon_state = "syndicatemeleestormtrooper" - icon_living = "syndicatemeleestormtrooper" +/mob/living/simple_animal/hostile/syndicate/melee/sword/space/stormtrooper + icon_state = "syndicate_stormtrooper_sword" + icon_living = "syndicate_stormtrooper_sword" name = "Syndicate Stormtrooper" - maxHealth = 340 - health = 340 - loot = list(/obj/effect/gibspawner/human) + maxHealth = 250 + health = 250 ///////////////Guns//////////// /mob/living/simple_animal/hostile/syndicate/ranged ranged = 1 - rapid = 1 retreat_distance = 5 minimum_distance = 5 - icon_state = "syndicateranged" - icon_living = "syndicateranged" - casingtype = /obj/item/ammo_casing/c45/nostamina - projectilesound = 'sound/weapons/gunshot_smg.ogg' + icon_state = "syndicate_pistol" + icon_living = "syndicate_pistol" + casingtype = /obj/item/ammo_casing/c10mm + projectilesound = 'sound/weapons/gunshot.ogg' loot = list(/obj/effect/gibspawner/human) -/mob/living/simple_animal/hostile/syndicate/ranged/pilot //caravan ambush ruin - name = "Syndicate Salvage Pilot" - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) - /mob/living/simple_animal/hostile/syndicate/ranged/infiltrator //shuttle loan event - rapid = FALSE projectilesound = 'sound/weapons/gunshot_silenced.ogg' loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) /mob/living/simple_animal/hostile/syndicate/ranged/space - icon_state = "syndicaterangedspace" - icon_living = "syndicaterangedspace" + icon_state = "syndicate_space_pistol" + icon_living = "syndicate_space_pistol" name = "Syndicate Commando" + maxHealth = 170 + health = 170 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 speed = 1 spacewalk = TRUE - loot = list(/obj/effect/gibspawner/human) /mob/living/simple_animal/hostile/syndicate/ranged/space/Initialize() . = ..() set_light(4) /mob/living/simple_animal/hostile/syndicate/ranged/space/stormtrooper - icon_state = "syndicaterangedstormtrooper" - icon_living = "syndicaterangedstormtrooper" + icon_state = "syndicate_stormtrooper_pistol" + icon_living = "syndicate_stormtrooper_pistol" name = "Syndicate Stormtrooper" - maxHealth = 200 - health = 200 - casingtype = /obj/item/ammo_casing/shotgun/buckshot //buckshot (up to 72.5 brute) fired in a three-round burst - projectilesound = 'sound/weapons/gunshot.ogg' - loot = list(/obj/effect/gibspawner/human) + maxHealth = 250 + health = 250 + +/mob/living/simple_animal/hostile/syndicate/ranged/smg + rapid = 2 + icon_state = "syndicate_smg" + icon_living = "syndicate_smg" + casingtype = /obj/item/ammo_casing/c45/nostamina + projectilesound = 'sound/weapons/gunshot_smg.ogg' + +/mob/living/simple_animal/hostile/syndicate/ranged/smg/pilot //caravan ambush ruin + name = "Syndicate Salvage Pilot" + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) + +/mob/living/simple_animal/hostile/syndicate/ranged/smg/space + icon_state = "syndicate_space_smg" + icon_living = "syndicate_space_smg" + name = "Syndicate Commando" + maxHealth = 170 + health = 170 + 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 + speed = 1 + spacewalk = TRUE + +/mob/living/simple_animal/hostile/syndicate/ranged/smg/space/Initialize() + . = ..() + set_light(4) + +/mob/living/simple_animal/hostile/syndicate/ranged/smg/space/stormtrooper + icon_state = "syndicate_stormtrooper_smg" + icon_living = "syndicate_stormtrooper_smg" + name = "Syndicate Stormtrooper" + maxHealth = 250 + health = 250 + +/mob/living/simple_animal/hostile/syndicate/ranged/shotgun + rapid = 2 + rapid_fire_delay = 6 + minimum_distance = 3 + icon_state = "syndicate_shotgun" + icon_living = "syndicate_shotgun" + casingtype = /obj/item/ammo_casing/shotgun/buckshot //buckshot (up to 72.5 brute) fired in a two-round burst + +/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space + icon_state = "syndicate_space_shotgun" + icon_living = "syndicate_space_shotgun" + name = "Syndicate Commando" + maxHealth = 170 + health = 170 + 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 + speed = 1 + spacewalk = TRUE + +/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space/Initialize() + . = ..() + set_light(4) + +/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space/stormtrooper + icon_state = "syndicate_stormtrooper_shotgun" + icon_living = "syndicate_stormtrooper_shotgun" + name = "Syndicate Stormtrooper" + maxHealth = 250 + health = 250 ///////////////Misc//////////// diff --git a/code/modules/mob/living/simple_animal/hostile/zombie.dm b/code/modules/mob/living/simple_animal/hostile/zombie.dm new file mode 100644 index 0000000000..21c2d4804a --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/zombie.dm @@ -0,0 +1,58 @@ +/mob/living/simple_animal/hostile/zombie + name = "Shambling Corpse" + desc = "When there is no more room in hell, the dead will walk in outer space." + icon = 'icons/mob/simple_human.dmi' + icon_state = "zombie" + icon_living = "zombie" + mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + speak_chance = 0 + stat_attack = UNCONSCIOUS //braains + maxHealth = 100 + health = 100 + harm_intent_damage = 5 + melee_damage_lower = 21 + melee_damage_upper = 21 + attacktext = "bites" + 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) + minbodytemp = 0 + spacewalk = FALSE + status_flags = CANPUSH + del_on_death = 1 + var/zombiejob = "Medical Doctor" + var/infection_chance = 0 + var/obj/effect/mob_spawn/human/corpse/delayed/corpse + +/mob/living/simple_animal/hostile/zombie/Initialize(mapload) + . = ..() + setup_visuals() + +/mob/living/simple_animal/hostile/zombie/proc/setup_visuals() + var/datum/preferences/dummy_prefs = new + dummy_prefs.pref_species = new /datum/species/zombie + dummy_prefs.be_random_body = TRUE + var/datum/job/J = SSjob.GetJob(zombiejob) + var/datum/outfit/O + if(J.outfit) + O = new J.outfit + //They have claws now. + O.r_hand = null + O.l_hand = null + + var/icon/P = get_flat_human_icon("zombie_[zombiejob]", J , dummy_prefs, "zombie", outfit_override = O) + icon = P + corpse = new(src) + corpse.outfit = O + corpse.mob_species = /datum/species/zombie + corpse.mob_name = name + +/mob/living/simple_animal/hostile/zombie/AttackingTarget() + . = ..() + if(. && ishuman(target) && prob(infection_chance)) + try_to_zombie_infect(target) + +/mob/living/simple_animal/hostile/zombie/drop_loot() + . = ..() + corpse.forceMove(drop_location()) + corpse.create() \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 2affa548c5..ca4b5defcd 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -394,6 +394,9 @@ if(!isturf(src.loc) || !canmove || buckled) return //If it can't move, dont let it move. (The buckled check probably isn't necessary thanks to canmove) + if(client && stat == CONSCIOUS && parrot_state != icon_living) + icon_state = icon_living + //Because the most appropriate place to set icon_state is movement_delay(), clearly //-----SLEEPING if(parrot_state == PARROT_PERCH) @@ -604,12 +607,6 @@ * Procs */ -/mob/living/simple_animal/parrot/movement_delay() - if(client && stat == CONSCIOUS && parrot_state != icon_living) - icon_state = icon_living - //Because the most appropriate place to set icon_state is movement_delay(), clearly - return ..() - /mob/living/simple_animal/parrot/proc/isStuck() //Check to see if the parrot is stuck due to things like windows or doors or windowdoors if(parrot_lastmove) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 4a2fda1704..44104070e8 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -101,9 +101,12 @@ real_name = name if(!loc) stack_trace("Simple animal being instantiated in nullspace") + update_simplemob_varspeed() /mob/living/simple_animal/Destroy() GLOB.simple_animals[AIStatus] -= src + if (SSnpcpool.state == SS_PAUSED && LAZYLEN(SSnpcpool.currentrun)) + SSnpcpool.currentrun -= src if(nest) nest.spawned_mobs -= src @@ -276,14 +279,14 @@ act = "me" ..(act, m_type, message) +/mob/living/simple_animal/proc/set_varspeed(var_value) + speed = var_value + update_simplemob_varspeed() - -/mob/living/simple_animal/movement_delay() - var/static/config_animal_delay - if(isnull(config_animal_delay)) - config_animal_delay = CONFIG_GET(number/animal_delay) - . += config_animal_delay - return ..() + speed + config_animal_delay +/mob/living/simple_animal/proc/update_simplemob_varspeed() + if(speed == 0) + remove_movespeed_modifier(MOVESPEED_ID_SIMPLEMOB_VARSPEED, TRUE) + add_movespeed_modifier(MOVESPEED_ID_SIMPLEMOB_VARSPEED, TRUE, 100, multiplicative_slowdown = speed, override = TRUE) /mob/living/simple_animal/Stat() ..() @@ -291,14 +294,17 @@ stat(null, "Health: [round((health / maxHealth) * 100)]%") return 1 +/mob/living/simple_animal/proc/drop_loot() + if(loot.len) + for(var/i in loot) + new i(loc) + /mob/living/simple_animal/death(gibbed) movement_type &= ~FLYING if(nest) nest.spawned_mobs -= src nest = null - if(loot.len) - for(var/i in loot) - new i(loc) + drop_loot() if(dextrous) drop_all_held_items() if(!gibbed) diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index ea2b9890f6..034ccc4c39 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -134,33 +134,37 @@ icon_state = icon_dead ..() -/mob/living/simple_animal/slime/movement_delay() - if(bodytemperature >= 330.23) // 135 F or 57.08 C - return -1 // slimes become supercharged at high temperatures - +/mob/living/simple_animal/slime/on_reagent_change() . = ..() - + remove_movespeed_modifier(MOVESPEED_ID_SLIME_REAGENTMOD, TRUE) + var/amount = 0 + if(reagents.has_reagent("morphine")) // morphine slows slimes down + amount = 2 + if(reagents.has_reagent("frostoil")) // Frostoil also makes them move VEEERRYYYYY slow + amount = 5 + if(amount) + add_movespeed_modifier(MOVESPEED_ID_SLIME_REAGENTMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = amount) + +/mob/living/simple_animal/slime/updatehealth() + . = ..() + remove_movespeed_modifier(MOVESPEED_ID_SLIME_HEALTHMOD, FALSE) var/health_deficiency = (100 - health) + var/mod = 0 if(health_deficiency >= 45) - . += (health_deficiency / 25) - - if(bodytemperature < 183.222) - . += (283.222 - bodytemperature) / 10 * 1.75 + mod += (health_deficiency / 25) + if(health <= 0) + mod += 2 + add_movespeed_modifier(MOVESPEED_ID_SLIME_HEALTHMOD, TRUE, 100, multiplicative_slowdown = mod) - if(reagents) - if(reagents.has_reagent("morphine")) // morphine slows slimes down - . *= 2 - - if(reagents.has_reagent("frostoil")) // Frostoil also makes them move VEEERRYYYYY slow - . *= 5 - - if(health <= 0) // if damaged, the slime moves twice as slow - . *= 2 - - var/static/config_slime_delay - if(isnull(config_slime_delay)) - config_slime_delay = CONFIG_GET(number/slime_delay) - . += config_slime_delay +/mob/living/simple_animal/slime/adjust_bodytemperature() + . = ..() + var/mod = 0 + if(bodytemperature >= 330.23) // 135 F or 57.08 C + mod = -1 // slimes become supercharged at high temperatures + else if(bodytemperature < 183.222) + mod = (283.222 - bodytemperature) / 10 * 1.75 + if(mod) + add_movespeed_modifier(MOVESPEED_ID_SLIME_TEMPMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = mod) /mob/living/simple_animal/slime/ObjBump(obj/O) if(!client && powerlevel > 0) @@ -306,9 +310,9 @@ discipline_slime(M) else if(stat == DEAD && surgeries.len) - if(M.a_intent == INTENT_HELP) + if(M.a_intent == INTENT_HELP || M.a_intent == INTENT_DISARM) for(var/datum/surgery/S in surgeries) - if(S.next_step(M)) + if(S.next_step(M,M.a_intent)) return 1 if(..()) //successful attack attacked += 10 @@ -321,9 +325,9 @@ /mob/living/simple_animal/slime/attackby(obj/item/W, mob/living/user, params) if(stat == DEAD && surgeries.len) - if(user.a_intent == INTENT_HELP) + if(user.a_intent == INTENT_HELP || user.a_intent == INTENT_DISARM) for(var/datum/surgery/S in surgeries) - if(S.next_step(user)) + if(S.next_step(user,user.a_intent)) return 1 if(istype(W, /obj/item/stack/sheet/mineral/plasma) && !stat) //Let's you feed slimes plasma. if (user in Friends) diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm index 47de9a0896..be98d1bfab 100644 --- a/code/modules/mob/living/status_procs.dm +++ b/code/modules/mob/living/status_procs.dm @@ -143,9 +143,14 @@ /mob/living/proc/add_trait(trait, source) if(!status_traits[trait]) status_traits[trait] = list(source) + on_add_trait(trait, source) else status_traits[trait] |= list(source) +/mob/living/proc/on_add_trait(trait, source) + if(trait == TRAIT_IGNORESLOWDOWN) + update_movespeed(FALSE) + /mob/living/proc/add_quirk(quirk, spawn_effects) //separate proc due to the way these ones are handled if(has_trait(quirk)) return @@ -156,7 +161,6 @@ return TRUE /mob/living/proc/remove_trait(trait, list/sources, force) - if(!status_traits[trait]) return @@ -165,6 +169,7 @@ if(!sources) // No defined source cures the trait entirely. status_traits -= trait + on_remove_trait(trait, sources, force) return if(!islist(sources)) @@ -179,6 +184,11 @@ if(!LAZYLEN(status_traits[trait])) status_traits -= trait + on_remove_trait(trait, sources, force) + +/mob/living/proc/on_remove_trait(trait, list/sources, force) + if(trait == TRAIT_IGNORESLOWDOWN) + update_movespeed(FALSE) /mob/living/proc/remove_quirk(quirk) var/datum/quirk/T = roundstart_quirks[quirk] @@ -260,13 +270,17 @@ /mob/living/proc/cure_fakedeath(list/sources) remove_trait(TRAIT_FAKEDEATH, sources) + remove_trait(TRAIT_DEATHCOMA, sources) if(stat != DEAD) tod = null update_stat() -/mob/living/proc/fakedeath(source) +/mob/living/proc/fakedeath(source, silent = FALSE) if(stat == DEAD) return + if(!silent) + emote("deathgasp") add_trait(TRAIT_FAKEDEATH, source) + add_trait(TRAIT_DEATHCOMA, source) tod = station_time_timestamp() update_stat() \ No newline at end of file diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 0f7f03f611..3d55ff4317 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -4,6 +4,7 @@ GLOB.alive_mob_list -= src GLOB.all_clockwork_mobs -= src GLOB.mob_directory -= tag + focus = null for (var/alert in alerts) clear_alert(alert, TRUE) if(observers && observers.len) @@ -34,6 +35,8 @@ AA.onNewMob(src) nutrition = rand(NUTRITION_LEVEL_START_MIN, NUTRITION_LEVEL_START_MAX) . = ..() + update_config_movespeed() + update_movespeed(TRUE) /mob/GenerateTag() tag = "mob_[next_mob_id++]" @@ -68,6 +71,9 @@ to_chat(usr, t) +/mob/proc/get_photo_description(obj/item/camera/camera) + return "a ... thing?" + /mob/proc/show_message(msg, type, alt_msg, alt_type)//Message, type of message (1 or 2), alternative message, alt message type (1 or 2) if(!client) @@ -169,9 +175,6 @@ for(var/mob/M in get_hearers_in_view(range, src)) M.show_message( message, 2, deaf_message, 1) -/mob/proc/movement_delay() //update /living/movement_delay() if you change this - return 0 - /mob/proc/Life() set waitfor = FALSE @@ -313,17 +316,17 @@ set category = "Object" if(!src || !isturf(src.loc) || !(A in view(src.loc))) - return 0 + return FALSE if(istype(A, /obj/effect/temp_visual/point)) - return 0 + return FALSE var/tile = get_turf(A) if (!tile) - return 0 + return FALSE new /obj/effect/temp_visual/point(A,invisibility) - return 1 + return TRUE /mob/proc/can_resist() return FALSE //overridden in living.dm @@ -595,59 +598,61 @@ if(S.chemical_cost >=0 && S.can_be_used_by(src)) statpanel("[S.panel]",((S.chemical_cost > 0) ? "[S.chemical_cost]" : ""),S) +#define MOB_FACE_DIRECTION_DELAY 1 + // facing verbs /mob/proc/canface() if(!canmove) - return 0 - if(world.time < client.move_delay) - return 0 - if(stat==2) - return 0 + return FALSE + if(world.time < client.last_turn) + return FALSE + if(stat == DEAD || stat == UNCONSCIOUS) + return FALSE if(anchored) - return 0 + return FALSE if(notransform) - return 0 + return FALSE if(restrained()) - return 0 - return 1 + return FALSE + return TRUE /mob/proc/fall(forced) drop_all_held_items() /mob/verb/eastface() - set hidden = 1 + set hidden = TRUE if(!canface()) - return 0 + return FALSE setDir(EAST) - client.move_delay += movement_delay() - return 1 + client.last_turn = world.time + MOB_FACE_DIRECTION_DELAY + return TRUE /mob/verb/westface() - set hidden = 1 + set hidden = TRUE if(!canface()) - return 0 + return FALSE setDir(WEST) - client.move_delay += movement_delay() - return 1 + client.last_turn = world.time + MOB_FACE_DIRECTION_DELAY + return TRUE /mob/verb/northface() - set hidden = 1 + set hidden = TRUE if(!canface()) - return 0 + return FALSE setDir(NORTH) - client.move_delay += movement_delay() - return 1 + client.last_turn = world.time + MOB_FACE_DIRECTION_DELAY + return TRUE /mob/verb/southface() - set hidden = 1 + set hidden = TRUE if(!canface()) - return 0 + return FALSE setDir(SOUTH) - client.move_delay += movement_delay() - return 1 + client.last_turn = world.time + MOB_FACE_DIRECTION_DELAY + return TRUE /mob/proc/IsAdvancedToolUser()//This might need a rename but it should replace the can this mob use things check - return 0 + return FALSE /mob/proc/swap_hand() return diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 3dff46ec84..0dbb8f5951 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -14,8 +14,7 @@ var/list/datum/action/chameleon_item_actions var/static/next_mob_id = 0 - var/stat = 0 //Whether a mob is alive or dead. TODO: Move this to living - Nodrak - + var/stat = CONSCIOUS //Whether a mob is alive or dead. TODO: Move this to living - Nodrak /*A bunch of this stuff really needs to go under their own defines instead of being globally attached to mob. A variable should only be globally attached to turfs/objects/whatever, when it is in fact needed as such. @@ -40,6 +39,11 @@ var/lying_prev = 0 var/canmove = 1 + //MOVEMENT SPEED + var/list/movespeed_modification //Lazy list, see mob_movespeed.dm + var/cached_multiplicative_slowdown + ///////////////// + var/name_archive //For admin things like possession var/bodytemperature = BODYTEMP_NORMAL //310.15K / 98.6F diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 291ae1e425..85318be931 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -10,6 +10,10 @@ return TRUE return (!mover.density || !density || lying) +//DO NOT USE THIS UNLESS YOU ABSOLUTELY HAVE TO. THIS IS BEING PHASED OUT FOR THE MOVESPEED MODIFICATION SYSTEM. +//See mob_movespeed.dm +/mob/proc/movement_delay() //update /living/movement_delay() if you change this + return cached_multiplicative_slowdown /client/verb/drop_item() set hidden = 1 @@ -26,7 +30,6 @@ mob.control_object.setDir(direct) else mob.control_object.forceMove(get_step(mob.control_object,direct)) - return #define MOVEMENT_DELAY_BUFFER 0.75 #define MOVEMENT_DELAY_BUFFER_DELTA 1.25 @@ -38,7 +41,7 @@ next_move_dir_add = 0 next_move_dir_sub = 0 var/old_move_delay = move_delay - move_delay = world.time+world.tick_lag //this is here because Move() can now be called mutiple times per tick + move_delay = world.time + world.tick_lag //this is here because Move() can now be called mutiple times per tick if(!mob || !mob.loc) return FALSE if(!n || !direct) @@ -357,9 +360,13 @@ set hidden = TRUE set instant = TRUE if(mob) - mob.toggle_move_intent() + mob.toggle_move_intent(usr) -/mob/proc/toggle_move_intent() +/mob/proc/toggle_move_intent(mob/user) + if(m_intent == MOVE_INTENT_RUN) + m_intent = MOVE_INTENT_WALK + else + m_intent = MOVE_INTENT_RUN if(hud_used && hud_used.static_inventory) for(var/obj/screen/mov_intent/selector in hud_used.static_inventory) - selector.toggle(src) + selector.update_icon(src) diff --git a/code/modules/mob/mob_movespeed.dm b/code/modules/mob/mob_movespeed.dm new file mode 100644 index 0000000000..9014592be2 --- /dev/null +++ b/code/modules/mob/mob_movespeed.dm @@ -0,0 +1,106 @@ + +/*Current movespeed modification list format: list(id = list( + priority, + legacy slowdown/speedup amount, + )) +*/ + +//ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE! +/mob/proc/add_movespeed_modifier(id, update = TRUE, priority = 0, flags = NONE, override = FALSE, multiplicative_slowdown = 0) + var/list/temp = list(priority, flags, multiplicative_slowdown) //build the modification list + if(LAZYACCESS(movespeed_modification, id)) + if(movespeed_modifier_identical_check(movespeed_modification[id], temp)) + return FALSE + if(!override) + return FALSE + else + remove_movespeed_modifier(id, update) + LAZYSET(movespeed_modification, id, list(priority, flags, multiplicative_slowdown)) + if(update) + update_movespeed(TRUE) + return TRUE + +/mob/proc/remove_movespeed_modifier(id, update = TRUE) + if(!LAZYACCESS(movespeed_modification, id)) + return FALSE + LAZYREMOVE(movespeed_modification, id) + UNSETEMPTY(movespeed_modification) + if(update) + update_movespeed(FALSE) + return TRUE + +/mob/vv_edit_var(var_name, var_value) + var/slowdown_edit = (var_name == NAMEOF(src, cached_multiplicative_slowdown)) + var/diff + if(slowdown_edit && isnum(cached_multiplicative_slowdown) && isnum(var_value)) + remove_movespeed_modifier(MOVESPEED_ID_ADMIN_VAREDIT) + diff = var_value - cached_multiplicative_slowdown + . = ..() + if(. && slowdown_edit && isnum(diff)) + add_movespeed_modifier(MOVESPEED_ID_ADMIN_VAREDIT, TRUE, 100, override = TRUE, multiplicative_slowdown = diff) + +/mob/proc/has_movespeed_modifier(id) + return LAZYACCESS(movespeed_modification, id) + +/mob/proc/update_config_movespeed() + add_movespeed_modifier(MOVESPEED_ID_CONFIG_SPEEDMOD, FALSE, 100, override = TRUE, multiplicative_slowdown = get_config_multiplicative_speed()) + +/mob/proc/get_config_multiplicative_speed() + if(!islist(GLOB.mob_config_movespeed_type_lookup) || !GLOB.mob_config_movespeed_type_lookup[type]) + return 0 + else + return GLOB.mob_config_movespeed_type_lookup[type] + +/mob/proc/update_movespeed(resort = TRUE) + if(resort) + sort_movespeed_modlist() + . = 0 + for(var/id in get_movespeed_modifiers()) + var/list/data = movespeed_modification[id] + . += data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN] + cached_multiplicative_slowdown = . + +/mob/proc/get_movespeed_modifiers() + return movespeed_modification + +/mob/proc/movespeed_modifier_identical_check(list/mod1, list/mod2) + if(!islist(mod1) || !islist(mod2) || mod1.len < MOVESPEED_DATA_INDEX_MAX || mod2.len < MOVESPEED_DATA_INDEX_MAX) + return FALSE + for(var/i in 1 to MOVESPEED_DATA_INDEX_MAX) + if(mod1[i] != mod2[i]) + return FALSE + return TRUE + +/mob/proc/total_multiplicative_slowdown() + . = 0 + for(var/id in get_movespeed_modifiers()) + var/list/data = movespeed_modification[id] + . += data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN] + +/proc/movespeed_data_null_check(list/data) //Determines if a data list is not meaningful and should be discarded. + . = TRUE + if(data[MOVESPEED_DATA_INDEX_MULTIPLICATIVE_SLOWDOWN]) + . = FALSE + +/mob/proc/sort_movespeed_modlist() //Verifies it too. Sorts highest priority (first applied) to lowest priority (last applied) + if(!movespeed_modification) + return + var/list/assembled = list() + for(var/our_id in movespeed_modification) + var/list/our_data = movespeed_modification[our_id] + if(!islist(our_data) || (our_data.len < MOVESPEED_DATA_INDEX_PRIORITY) || movespeed_data_null_check(our_data)) + movespeed_modification -= our_id + continue + var/our_priority = our_data[MOVESPEED_DATA_INDEX_PRIORITY] + var/resolved = FALSE + for(var/their_id in assembled) + var/list/their_data = assembled[their_id] + if(their_data[MOVESPEED_DATA_INDEX_PRIORITY] < our_priority) + assembled.Insert(assembled.Find(their_id), our_id) + assembled[our_id] = our_data + resolved = TRUE + break + if(!resolved) + assembled[our_id] = our_data + movespeed_modification = assembled + UNSETEMPTY(movespeed_modification) \ No newline at end of file diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 4220fdbfe0..f9576a3ecb 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -75,7 +75,7 @@ K = src.key message = src.say_quote(message, get_spans()) - var/rendered = "DEAD: [name][alt_name] [message]" + var/rendered = "DEAD: [name][alt_name] [emoji_parse(message)]" log_message("DEAD: [message]", INDIVIDUAL_SAY_LOG) deadchat_broadcast(rendered, follow_target = src, speaker_key = K) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index e8a4c26d10..8871de6383 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -94,30 +94,7 @@ else if(photocopy) for(var/i = 0, i < copies, i++) if(toner >= 5 && !busy && photocopy) //Was set to = 0, but if there was say 3 toner left and this ran, you would get -2 which would be weird for ink - var/obj/item/photo/p = new /obj/item/photo (loc) - var/icon/I = icon(photocopy.icon, photocopy.icon_state) - var/icon/img = icon(photocopy.img) - if(greytoggle == "Greyscale") - if(toner > 10) //plenty of toner, go straight greyscale - I.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) //I'm not sure how expensive this is, but given the many limitations of photocopying, it shouldn't be an issue. - img.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) - else //not much toner left, lighten the photo - I.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) - img.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) - toner -= 5 //photos use a lot of ink! - else if(greytoggle == "Color") - if(toner >= 10) - toner -= 10 //Color photos use even more ink! - else - continue - p.icon = I - p.img = img - p.name = photocopy.name - p.desc = photocopy.desc - p.scribble = photocopy.scribble - p.pixel_x = rand(-10, 10) - p.pixel_y = rand(-10, 10) - p.blueprints = photocopy.blueprints //a copy of a picture is still good enough for the syndicate + new /obj/item/photo (loc, photocopy.picture.Copy(greytoggle == "Greyscale"? TRUE : FALSE)) busy = TRUE sleep(15) busy = FALSE @@ -155,15 +132,10 @@ else break var/obj/item/photo/p = new /obj/item/photo (loc) - p.desc = "You see [ass]'s ass on the photo." p.pixel_x = rand(-10, 10) p.pixel_y = rand(-10, 10) - p.img = temp_img - var/icon/small_img = icon(temp_img) //Icon() is needed or else temp_img will be rescaled too >.> - var/icon/ic = icon('icons/obj/items_and_weapons.dmi',"photo") - small_img.Scale(8, 8) - ic.Blend(small_img,ICON_OVERLAY, 13, 13) - p.icon = ic + p.picture = new(null, "You see [ass]'s ass on the photo.", temp_img) + p.update_icon() toner -= 5 busy = TRUE sleep(15) @@ -196,29 +168,14 @@ if(!isAI(usr)) return if(toner >= 5 && !busy) - var/list/nametemp = list() - var/find - var/datum/picture/selection var/mob/living/silicon/ai/tempAI = usr - if(tempAI.aicamera.aipictures.len == 0) + if(tempAI.aicamera.stored.len == 0) to_chat(usr, "No images saved") return - for(var/datum/picture/t in tempAI.aicamera.aipictures) - nametemp += t.fields["name"] - find = input("Select image (numbered in order taken)") in nametemp - var/obj/item/photo/p = new /obj/item/photo (loc) - for(var/datum/picture/q in tempAI.aicamera.aipictures) - if(q.fields["name"] == find) - selection = q - break - var/icon/I = selection.fields["icon"] - var/icon/img = selection.fields["img"] - p.icon = I - p.img = img - p.desc = selection.fields["desc"] - p.blueprints = selection.fields["blueprints"] - p.pixel_x = rand(-10, 10) - p.pixel_y = rand(-10, 10) + var/datum/picture/selection = tempAI.aicamera.selectpicture(usr) + var/obj/item/photo/photo = new(loc, selection) + photo.pixel_x = rand(-10, 10) + photo.pixel_y = rand(-10, 10) toner -= 5 //AI prints color pictures only, thus they can do it more efficiently busy = TRUE sleep(15) diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm deleted file mode 100644 index a5644171b2..0000000000 --- a/code/modules/paperwork/photography.dm +++ /dev/null @@ -1,662 +0,0 @@ -/* Photography! - * Contains: - * Camera - * Camera Film - * Photos - * Photo Albums - * Picture Frames - * AI Photography - */ - -/* - * Film - */ -/obj/item/camera_film - name = "film cartridge" - icon = 'icons/obj/items_and_weapons.dmi' - desc = "A camera film cartridge. Insert it into a camera to reload it." - icon_state = "film" - item_state = "electropack" - lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - w_class = WEIGHT_CLASS_TINY - resistance_flags = FLAMMABLE - materials = list(MAT_METAL = 10, MAT_GLASS = 10) - -/* - * Photo - */ -/obj/item/photo - name = "photo" - icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "photo" - item_state = "paper" - w_class = WEIGHT_CLASS_TINY - resistance_flags = FLAMMABLE - max_integrity = 50 - grind_results = list("iodine" = 4) - var/icon/img //Big photo image - var/scribble //Scribble on the back. - var/blueprints = 0 //Does it include the blueprints? - var/sillynewscastervar //Photo objects with this set to 1 will not be ejected by a newscaster. Only gets set to 1 if a silicon puts one of their images into a newscaster - -/obj/item/photo/suicide_act(mob/living/carbon/user) - user.visible_message("[user] is taking one last look at \the [src]! It looks like [user.p_theyre()] giving in to death!")//when you wanna look at photo of waifu one last time before you die... - if (user.gender == MALE) - playsound(user, 'sound/voice/human/manlaugh1.ogg', 50, 1)//EVERY TIME I DO IT MAKES ME LAUGH - else if (user.gender == FEMALE) - playsound(user, 'sound/voice/human/womanlaugh.ogg', 50, 1) - return OXYLOSS - -/obj/item/photo/attack_self(mob/user) - user.examinate(src) - - -/obj/item/photo/attackby(obj/item/P, mob/user, params) - if(istype(P, /obj/item/pen) || istype(P, /obj/item/toy/crayon)) - if(!user.is_literate()) - to_chat(user, "You scribble illegibly on [src]!") - return - var/txt = sanitize(input(user, "What would you like to write on the back?", "Photo Writing", null) as text) - txt = copytext(txt, 1, 128) - if(user.canUseTopic(src, BE_CLOSE)) - scribble = txt - ..() - - -/obj/item/photo/examine(mob/user) - ..() - - if(in_range(src, user)) - show(user) - else - to_chat(user, "You need to get closer to get a good look at this photo!") - - -/obj/item/photo/proc/show(mob/user) - user << browse_rsc(img, "tmp_photo.png") - user << browse("[name]" \ - + "" \ - + "" \ - + "[scribble ? "
    Written on the back:
    [scribble]" : ""]"\ - + "", "window=book;size=192x[scribble ? 400 : 192]") - onclose(user, "[name]") - - -/obj/item/photo/verb/rename() - set name = "Rename photo" - set category = "Object" - set src in usr - - var/n_name = copytext(sanitize(input(usr, "What would you like to label the photo?", "Photo Labelling", null) as text), 1, MAX_NAME_LEN) - //loc.loc check is for making possible renaming photos in clipboards - if((loc == usr || loc.loc && loc.loc == usr) && usr.stat == CONSCIOUS && usr.canmove && !usr.restrained()) - name = "photo[(n_name ? text("- '[n_name]'") : null)]" - add_fingerprint(usr) - -/obj/item/photo/proc/photocreate(inicon, inimg, indesc, inblueprints) - icon = inicon - img = inimg - desc = indesc - blueprints = inblueprints - -/* - * Photo album - */ -/obj/item/storage/photo_album - name = "photo album" - icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "album" - item_state = "briefcase" - lefthand_file = 'icons/mob/inhands/equipment/briefcase_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/briefcase_righthand.dmi' - resistance_flags = FLAMMABLE - -/obj/item/storage/photo_album/Initialize() - . = ..() - GET_COMPONENT(STR, /datum/component/storage) - STR.can_hold = typecacheof(list(/obj/item/photo)) - -/* - * Camera - */ -/obj/item/camera - name = "camera" - icon = 'icons/obj/items_and_weapons.dmi' - desc = "A polaroid camera." - icon_state = "camera" - item_state = "electropack" - lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - w_class = WEIGHT_CLASS_SMALL - flags_1 = CONDUCT_1 - slot_flags = ITEM_SLOT_BELT - materials = list(MAT_METAL = 50, MAT_GLASS = 150) - var/pictures_max = 10 - var/pictures_left = 10 - var/on = TRUE - var/blueprints = 0 //are blueprints visible in the current photo being created? - var/list/aipictures = list() //Allows for storage of pictures taken by AI, in a similar manner the datacore stores info. Keeping this here allows us to share some procs w/ regualar camera - var/see_ghosts = 0 //for the spoop of it - var/obj/item/disk/holodisk/disk - - -/obj/item/camera/CheckParts(list/parts_list) - ..() - var/obj/item/camera/C = locate(/obj/item/camera) in contents - if(C) - pictures_max = C.pictures_max - pictures_left = C.pictures_left - visible_message("[C] has been imbued with godlike power!") - qdel(C) - - -/obj/item/camera/spooky - name = "camera obscura" - desc = "A polaroid camera, some say it can see ghosts!" - see_ghosts = 1 - -/obj/item/camera/detective - name = "Detective's camera" - desc = "A polaroid camera with extra capacity for crime investigations." - pictures_max = 30 - pictures_left = 30 - - -/obj/item/camera/siliconcam //camera AI can take pictures with - name = "silicon photo camera" - var/in_camera_mode = 0 - -/obj/item/camera/siliconcam/ai_camera //camera AI can take pictures with - name = "AI photo camera" - -/obj/item/camera/siliconcam/robot_camera //camera cyborgs can take pictures with.. needs it's own because of verb CATEGORY >.> - name = "Cyborg photo camera" - -/obj/item/camera/siliconcam/robot_camera/verb/borgprinting() - set category ="Robot Commands" - set name = "Print Image" - set src in usr - - if(usr.stat == DEAD) - return //won't work if dead - borgprint() - -/obj/item/camera/attack(mob/living/carbon/human/M, mob/user) - return - - -/obj/item/camera/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/camera_film)) - if(pictures_left) - to_chat(user, "[src] still has some film in it!") - return - if(!user.temporarilyRemoveItemFromInventory(I)) - return - to_chat(user, "You insert [I] into [src].") - qdel(I) - pictures_left = pictures_max - return - if(istype(I, /obj/item/disk/holodisk)) - if (!disk) - if(!user.transferItemToLoc(I, src)) - to_chat(user, "[I] is stuck to your hand!") - return TRUE - to_chat(user, "You slide [I] into the back of [src].") - disk = I - else - to_chat(user, "There's already a disk inside [src].") - return TRUE //no afterattack - ..() - -/obj/item/camera/attack_self(mob/user) - if(!disk) - return - to_chat(user, "You eject [disk] out the back of [src].") - user.put_in_hands(disk) - disk = null - -/obj/item/camera/examine(mob/user) - ..() - to_chat(user, "It has [pictures_left] photo\s left.") - - -/obj/item/camera/proc/camera_get_icon(list/turfs, turf/center) - var/list/atoms = list() - for(var/turf/T in turfs) - atoms.Add(T) - for(var/atom/movable/A in T) - if(A.invisibility) - if(see_ghosts && isobserver(A)) - var/mob/dead/observer/O = A - if(O.orbiting) //so you dont see ghosts following people like antags, etc. - continue - else - continue - atoms.Add(A) - - var/list/sorted = sortTim(atoms,/proc/cmp_atom_layer_asc) - - var/icon/res = icon('icons/effects/96x96.dmi', "") - - for(var/atom/A in sorted) - var/icon/img = getFlatIcon(A, no_anim = TRUE) - if(isliving(A)) - var/mob/living/L = A - if(L.lying) - img.Turn(L.lying) - - var/offX = world.icon_size * (A.x - center.x) + A.pixel_x + 33 - var/offY = world.icon_size * (A.y - center.y) + A.pixel_y + 33 - if(ismovableatom(A)) - var/atom/movable/AM = A - offX += AM.step_x - offY += AM.step_y - - res.Blend(img, blendMode2iconMode(A.blend_mode), offX, offY) - - if(istype(A, /obj/item/areaeditor/blueprints)) - blueprints = 1 - - for(var/turf/T in turfs) - var/area/A = T.loc - if(A.icon_state)//There's actually something to blend in. - res.Blend(getFlatIcon(A,no_anim = TRUE), blendMode2iconMode(A.blend_mode), world.icon_size * (T.x - center.x) + 33, world.icon_size * (T.y - center.y) + 33) - - return res - - -/obj/item/camera/proc/camera_get_mobs(turf/the_turf) - var/mob_detail - for(var/mob/M in the_turf) - if(M.invisibility) - if(see_ghosts && isobserver(M)) - var/mob/dead/observer/O = M - if(O.orbiting) - continue - if(!mob_detail) - mob_detail = "You can see a g-g-g-g-ghooooost! " - else - mob_detail += "You can also see a g-g-g-g-ghooooost!" - else - continue - - var/list/holding = list() - - if(isliving(M)) - var/mob/living/L = M - - for(var/obj/item/I in L.held_items) - if(!holding) - holding += "[L.p_theyre(TRUE)] holding \a [I]" - else - holding += " and \a [I]" - holding = holding.Join() - - if(!mob_detail) - mob_detail = "You can see [L] on the photo[L.health < (L.maxHealth * 0.75) ? " - [L] looks hurt":""].[holding ? " [holding]":"."]. " - else - mob_detail += "You can also see [L] on the photo[L.health < (L.maxHealth * 0.75) ? " - [L] looks hurt":""].[holding ? " [holding]":"."]." - - - return mob_detail - - -/obj/item/camera/proc/captureimage(atom/target, mob/user, flag) //Proc for both regular and AI-based camera to take the image - var/mobs = "" - var/isAi = isAI(user) - var/list/seen - if(!isAi) //crappy check, but without it AI photos would be subject to line of sight from the AI Eye object. Made the best of it by moving the sec camera check inside - if(user.client) //To make shooting through security cameras possible - seen = get_hear(world.view, user.client.eye) //To make shooting through security cameras possible - else - seen = get_hear(world.view, user) - else - seen = get_hear(world.view, target) - - var/list/turfs = list() - for(var/turf/T in range(1, target)) - if(T in seen) - if(isAi && !GLOB.cameranet.checkTurfVis(T)) - continue - else - turfs += T - mobs += camera_get_mobs(T) - - var/icon/temp = icon('icons/effects/96x96.dmi',"") - temp.Blend("#000", ICON_OVERLAY) - temp.Blend(camera_get_icon(turfs, target), ICON_OVERLAY) - - if(!issilicon(user)) - printpicture(user, temp, mobs, flag) - else - aipicture(user, temp, mobs, isAi, blueprints) - - - - -/obj/item/camera/proc/printpicture(mob/user, icon/temp, mobs, flag) //Normal camera proc for creating photos - var/obj/item/photo/P = new/obj/item/photo(get_turf(src)) - if(in_range(src, user)) //needed because of TK - user.put_in_hands(P) - var/icon/small_img = icon(temp) - var/icon/ic = icon('icons/obj/items_and_weapons.dmi',"photo") - small_img.Scale(8, 8) - ic.Blend(small_img,ICON_OVERLAY, 13, 13) - P.icon = ic - P.img = temp - P.desc = mobs - P.pixel_x = rand(-10, 10) - P.pixel_y = rand(-10, 10) - - if(blueprints) - P.blueprints = 1 - blueprints = 0 - - -/obj/item/camera/proc/aipicture(mob/user, icon/temp, mobs, isAi) //instead of printing a picture like a regular camera would, we do this instead for the AI - - var/icon/small_img = icon(temp) - var/icon/ic = icon('icons/obj/items_and_weapons.dmi',"photo") - small_img.Scale(8, 8) - ic.Blend(small_img,ICON_OVERLAY, 13, 13) - var/icon = ic - var/img = temp - var/desc = mobs - var/pixel_x = rand(-10, 10) - var/pixel_y = rand(-10, 10) - - var/injectblueprints = 1 - if(blueprints) - injectblueprints = 1 - blueprints = 0 - - if(isAi) - injectaialbum(icon, img, desc, pixel_x, pixel_y, injectblueprints) - else - injectmasteralbum(icon, img, desc, pixel_x, pixel_y, injectblueprints) - - - -/datum/picture - var/name = "image" - var/list/fields = list() - - -/obj/item/camera/proc/injectaialbum(icon, img, desc, pixel_x, pixel_y, blueprintsinject) //stores image information to a list similar to that of the datacore - var/numberer = 1 - for(var/datum/picture in src.aipictures) - numberer++ - var/datum/picture/P = new() - P.fields["name"] = "Image [numberer] (taken by [src.loc.name])" - P.fields["icon"] = icon - P.fields["img"] = img - P.fields["desc"] = desc - P.fields["pixel_x"] = pixel_x - P.fields["pixel_y"] = pixel_y - P.fields["blueprints"] = blueprintsinject - - aipictures += P - to_chat(usr, "Image recorded") //feedback to the AI player that the picture was taken - -/obj/item/camera/proc/injectmasteralbum(icon, img, desc, pixel_x, pixel_y, blueprintsinject) //stores image information to a list similar to that of the datacore - var/numberer = 1 - var/mob/living/silicon/robot/C = src.loc - if(C.connected_ai) - for(var/datum/picture in C.connected_ai.aicamera.aipictures) - numberer++ - var/datum/picture/P = new() - P.fields["name"] = "Image [numberer] (taken by [src.loc.name])" - P.fields["icon"] = icon - P.fields["img"] = img - P.fields["desc"] = desc - P.fields["pixel_x"] = pixel_x - P.fields["pixel_y"] = pixel_y - P.fields["blueprints"] = blueprintsinject - - C.connected_ai.aicamera.aipictures += P - to_chat(usr, "Image recorded and saved to remote database") //feedback to the Cyborg player that the picture was taken - else - injectaialbum(icon, img, desc, pixel_x, pixel_y, blueprintsinject) - -/obj/item/camera/siliconcam/proc/selectpicture(obj/item/camera/siliconcam/targetloc) - var/list/nametemp = list() - var/find - if(targetloc.aipictures.len == 0) - to_chat(usr, "No images saved") - return - for(var/datum/picture/t in targetloc.aipictures) - nametemp += t.fields["name"] - find = input("Select image (numbered in order taken)") in nametemp - for(var/datum/picture/q in targetloc.aipictures) - if(q.fields["name"] == find) - return q - -/obj/item/camera/siliconcam/proc/viewpichelper(obj/item/camera/siliconcam/targetloc) - var/obj/item/photo/P = new/obj/item/photo() - var/datum/picture/selection = selectpicture(targetloc) - if(selection) - P.photocreate(selection.fields["icon"], selection.fields["img"], selection.fields["desc"]) - P.pixel_x = selection.fields["pixel_x"] - P.pixel_y = selection.fields["pixel_y"] - - P.show(usr) - to_chat(usr, P.desc) - qdel(P) //so 10 thousand picture items are not left in memory should an AI take them and then view them all - -/obj/item/camera/siliconcam/proc/viewpictures(user) - if(iscyborg(user)) // Cyborg - var/mob/living/silicon/robot/C = src.loc - var/obj/item/camera/siliconcam/Cinfo - if(C.connected_ai) - Cinfo = C.connected_ai.aicamera - viewpichelper(Cinfo) - else - Cinfo = C.aicamera - viewpichelper(Cinfo) - else // AI - var/Ainfo = src - viewpichelper(Ainfo) - -/obj/item/camera/afterattack(atom/target, mob/user, flag) - . = ..() - if(!on || !pictures_left || !isturf(target.loc)) - return - if (disk) - if(ismob(target)) - if (disk.record) - QDEL_NULL(disk.record) - - disk.record = new - var/mob/M = target - disk.record.caller_name = M.name - disk.record.set_caller_image(M) - else - return - else - captureimage(target, user, flag) - pictures_left-- - to_chat(user, "[pictures_left] photos left.") - - playsound(loc, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 75, 1, -3) - - icon_state = "camera_off" - on = FALSE - addtimer(CALLBACK(src, .proc/cooldown), 64) - -/obj/item/camera/proc/cooldown() - set waitfor = FALSE - icon_state = "camera" - on = TRUE - -/obj/item/camera/siliconcam/proc/toggle_camera_mode() - if(in_camera_mode) - camera_mode_off() - else - camera_mode_on() - -/obj/item/camera/siliconcam/proc/camera_mode_off() - src.in_camera_mode = 0 - to_chat(usr, "Camera Mode deactivated") - -/obj/item/camera/siliconcam/proc/camera_mode_on() - src.in_camera_mode = 1 - to_chat(usr, "Camera Mode activated") - -/obj/item/camera/siliconcam/robot_camera/proc/borgprint() - var/list/nametemp = list() - var/find - var/datum/picture/selection - var/mob/living/silicon/robot/C = src.loc - var/obj/item/camera/siliconcam/targetcam = null - if(C.toner < 20) - to_chat(usr, "Insufficent toner to print image.") - return - if(C.connected_ai) - targetcam = C.connected_ai.aicamera - else - targetcam = C.aicamera - if(targetcam.aipictures.len == 0) - to_chat(usr, "No images saved") - return - for(var/datum/picture/t in targetcam.aipictures) - nametemp += t.fields["name"] - find = input("Select image (numbered in order taken)") in nametemp - for(var/datum/picture/q in targetcam.aipictures) - if(q.fields["name"] == find) - selection = q - break - var/obj/item/photo/p = new /obj/item/photo(C.loc) - p.photocreate(selection.fields["icon"], selection.fields["img"], selection.fields["desc"], selection.fields["blueprints"]) - p.pixel_x = rand(-10, 10) - p.pixel_y = rand(-10, 10) - C.toner -= 20 //Cyborgs are very ineffeicient at printing an image - visible_message("[C.name] spits out a photograph from a narrow slot on its chassis.") - to_chat(usr, "You print a photograph.") - -// Picture frames - -/obj/item/wallframe/picture - name = "picture frame" - desc = "The perfect showcase for your favorite deathtrap memories." - icon = 'icons/obj/decals.dmi' - materials = list() - flags_1 = 0 - icon_state = "frame-empty" - result_path = /obj/structure/sign/picture_frame - var/obj/item/photo/displayed - -/obj/item/wallframe/picture/attackby(obj/item/I, mob/user) - if(istype(I, /obj/item/photo)) - if(!displayed) - if(!user.transferItemToLoc(I, src)) - return - displayed = I - update_icon() - else - to_chat(user, "\The [src] already contains a photo.") - ..() - -//ATTACK HAND IGNORING PARENT RETURN VALUE -/obj/item/wallframe/picture/attack_hand(mob/user) - if(user.get_inactive_held_item() != src) - ..() - return - if(contents.len) - var/obj/item/I = pick(contents) - user.put_in_hands(I) - to_chat(user, "You carefully remove the photo from \the [src].") - displayed = null - update_icon() - return ..() - -/obj/item/wallframe/picture/attack_self(mob/user) - user.examinate(src) - -/obj/item/wallframe/picture/examine(mob/user) - if(user.is_holding(src) && displayed) - displayed.show(user) - else - ..() - -/obj/item/wallframe/picture/update_icon() - cut_overlays() - if(displayed) - add_overlay(getFlatIcon(displayed)) - -/obj/item/wallframe/picture/after_attach(obj/O) - ..() - var/obj/structure/sign/picture_frame/PF = O - PF.copy_overlays(src) - if(displayed) - PF.framed = displayed - if(contents.len) - var/obj/item/I = pick(contents) - I.forceMove(PF) - - -/obj/structure/sign/picture_frame - name = "picture frame" - desc = "Every time you look it makes you laugh." - icon = 'icons/obj/decals.dmi' - icon_state = "frame-empty" - var/obj/item/photo/framed - -/obj/structure/sign/picture_frame/New(loc, dir, building) - ..() - 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/picture_frame/examine(mob/user) - if(in_range(src, user) && framed) - framed.show(user) - else - ..() - -/obj/structure/sign/picture_frame/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/screwdriver) || istype(I, /obj/item/wrench)) - to_chat(user, "You start unsecuring [name]...") - if(I.use_tool(src, user, 30, volume=50)) - playsound(loc, 'sound/items/deconstruct.ogg', 50, 1) - to_chat(user, "You unsecure [name].") - deconstruct() - return - - else if(istype(I, /obj/item/photo)) - if(!framed) - var/obj/item/photo/P = I - if(!user.transferItemToLoc(P, src)) - return - framed = P - update_icon() - else - to_chat(user, "\The [src] already contains a photo.") - - ..() - -/obj/structure/sign/picture_frame/attack_hand(mob/user) - . = ..() - if(.) - return - if(framed) - framed.show(user) - -/obj/structure/sign/picture_frame/update_icon() - cut_overlays() - if(framed) - add_overlay(getFlatIcon(framed)) - -/obj/structure/sign/picture_frame/deconstruct(disassembled = TRUE) - if(!(flags_1 & NODECONSTRUCT_1)) - var/obj/item/wallframe/picture/F = new /obj/item/wallframe/picture(loc) - if(framed) - F.displayed = framed - framed = null - if(contents.len) - var/obj/item/I = pick(contents) - I.forceMove(F) - F.update_icon() - qdel(src) diff --git a/code/modules/photography/_pictures.dm b/code/modules/photography/_pictures.dm new file mode 100644 index 0000000000..9f5babbbbc --- /dev/null +++ b/code/modules/photography/_pictures.dm @@ -0,0 +1,171 @@ +/datum/picture + var/picture_name = "picture" + var/picture_desc = "This is a picture." + var/caption + var/icon/picture_image + var/icon/picture_icon + var/psize_x = 96 + var/psize_y = 96 + var/has_blueprints = FALSE + var/logpath //If the picture has been logged this is the path. + var/id //this var is NOT protected because the worst you can do with this that you couldn't do otherwise is overwrite photos, and photos aren't going to be used as attack logs/investigations anytime soon. + +/datum/picture/New(name, desc, image, icon, size_x, size_y, bp, caption_, autogenerate_icon) + if(!isnull(name)) + picture_name = name + if(!isnull(desc)) + picture_desc = desc + if(!isnull(image)) + picture_image = image + if(!isnull(icon)) + picture_icon = icon + if(!isnull(psize_x)) + psize_x = size_x + if(!isnull(psize_y)) + psize_y = size_y + if(!isnull(bp)) + has_blueprints = bp + if(!isnull(caption_)) + caption = caption_ + if(autogenerate_icon && !picture_icon && picture_image) + regenerate_small_icon() + +/datum/picture/proc/get_small_icon() + if(!picture_icon) + regenerate_small_icon() + return picture_icon + +/datum/picture/proc/regenerate_small_icon() + if(!picture_image) + return + var/icon/small_img = icon(picture_image) + var/icon/ic = icon('icons/obj/items_and_weapons.dmi', "photo") + small_img.Scale(8, 8) + ic.Blend(small_img,ICON_OVERLAY, 13, 13) + picture_icon = ic + +/datum/picture/serialize_list(list/options) + . = list() + .["id"] = id + .["desc"] = picture_desc + .["name"] = picture_name + .["caption"] = caption + .["pixel_size_x"] = psize_x + .["pixel_size_y"] = psize_y + .["blueprints"] = has_blueprints + .["logpath"] = logpath + +/datum/picture/deserialize_list(list/input, list/options) + if(!input["logpath"] || !fexists(input["logpath"]) || !input["id"] || !input["pixel_size_x"] || !input["pixel_size_y"]) + return + picture_image = icon(file(input["logpath"])) + logpath = input["logpath"] + id = input["id"] + psize_x = input["pixel_size_x"] + psize_y = input["pixel_size_y"] + if(input["blueprints"]) + has_blueprints = input["blueprints"] + if(input["caption"]) + caption = input["caption"] + if(input["desc"]) + picture_desc = input["desc"] + if(input["name"]) + picture_name = input["name"] + return src + +/proc/load_photo_from_disk(id, location) + var/datum/picture/P = load_picture_from_disk(id) + if(istype(P)) + var/obj/item/photo/p = new(location, P) + return p + +/proc/load_picture_from_disk(id) + var/pathstring = log_path_from_picture_ID(id) + if(!pathstring) + return + var/path = file(pathstring) + if(!fexists(path)) + return + var/dir_index = findlasttext(pathstring, "/") + var/dir = copytext(pathstring, 1, dir_index) + var/json_path = file("[dir]/metadata.json") + if(!fexists(json_path)) + return + var/list/json = json_decode(file2text(json_path)) + if(!json[id]) + return + var/datum/picture/P = new + P.deserialize_json(json[id]) + return P + +/proc/log_path_from_picture_ID(id) + if(!istext(id)) + return + . = "data/picture_logs/" + var/list/data = splittext(id, "_") + if(data.len < 3) + return null + var/mode = data[1] + switch(mode) + if("L") + if(data.len < 5) + return null + var/timestamp = data[2] + var/year = copytext(timestamp, 1, 5) + var/month = copytext(timestamp, 5, 7) + var/day = copytext(timestamp, 7, 9) + var/round = data[4] + . += "[year]/[month]/[day]/round-[round]" + if("O") + var/list/path = data.Copy(2, data.len) + . += path.Join("") + else + return null + var/n = data[data.len] + . += "/[n].png" + +//BE VERY CAREFUL WITH THIS PROC, TO AVOID DUPLICATION. +/datum/picture/proc/log_to_file() + if(!picture_image) + return + if(!CONFIG_GET(flag/log_pictures)) + return + if(logpath) + return //we're already logged + var/number = GLOB.picture_logging_id++ + var/finalpath = "[GLOB.picture_log_directory]/[number].png" + fcopy(icon(picture_image, dir = SOUTH, frame = 1), finalpath) + logpath = finalpath + id = "[GLOB.picture_logging_prefix][number]" + var/jsonpath = "[GLOB.picture_log_directory]/metadata.json" + jsonpath = file(jsonpath) + var/list/json + if(fexists(jsonpath)) + json = json_decode(file2text(jsonpath)) + fdel(jsonpath) + else + json = list() + json[id] = serialize_json() + WRITE_FILE(jsonpath, json_encode(json)) + +/datum/picture/proc/Copy(greyscale = FALSE, cropx = 0, cropy = 0) + var/datum/picture/P = new + P.picture_name = picture_name + P.picture_desc = picture_desc + if(picture_image) + P.picture_image = icon(picture_image) //Copy, not reference. + if(picture_icon) + P.picture_icon = icon(picture_icon) + P.psize_x = psize_x - cropx * 2 + P.psize_y = psize_y - cropy * 2 + P.has_blueprints = has_blueprints + if(greyscale) + if(picture_image) + P.picture_image.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) + if(picture_icon) + P.picture_icon.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) + if(cropx || cropy) + if(picture_image) + P.picture_image.Crop(cropx, cropy, psize_x - cropx, psize_y - cropy) + P.regenerate_small_icon() + return P diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm new file mode 100644 index 0000000000..434374db8c --- /dev/null +++ b/code/modules/photography/camera/camera.dm @@ -0,0 +1,202 @@ + +#define CAMERA_PICTURE_SIZE_HARD_LIMIT 21 + +/obj/item/camera + name = "camera" + icon = 'icons/obj/items_and_weapons.dmi' + desc = "A polaroid camera. Alt click to change its focusing, allowing you to set how big of an area it will capture!" + icon_state = "camera" + item_state = "camera" + lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' + w_class = WEIGHT_CLASS_SMALL + flags_1 = CONDUCT_1 + slot_flags = ITEM_SLOT_NECK + materials = list(MAT_METAL = 50, MAT_GLASS = 150) + var/state_on = "camera" + var/state_off = "camera_off" + var/pictures_max = 10 + var/pictures_left = 10 + var/on = TRUE + var/cooldown = 64 + var/blending = FALSE //lets not take pictures while the previous is still processing! + var/see_ghosts = CAMERA_NO_GHOSTS //for the spoop of it + var/obj/item/disk/holodisk/disk + var/sound/custom_sound + var/silent = FALSE + var/picture_size_x = 2 + var/picture_size_y = 2 + var/picture_size_x_min = 1 + var/picture_size_y_min = 1 + var/picture_size_x_max = 4 + var/picture_size_y_max = 4 + +/obj/item/camera/attack_self(mob/user) + if(!disk) + return + to_chat(user, "You eject [disk] out the back of [src].") + user.put_in_hands(disk) + disk = null + +/obj/item/camera/AltClick(mob/user) + var/desired_x = input(user, "How high do you want the camera to shoot, between [picture_size_x_min] and [picture_size_x_max]?", "Zoom", picture_size_x) as num + var/desired_y = input(user, "How wide do you want the camera to shoot, between [picture_size_y_min] and [picture_size_y_max]?", "Zoom", picture_size_y) as num + desired_x = min(CLAMP(desired_x, picture_size_x_min, picture_size_x_max), CAMERA_PICTURE_SIZE_HARD_LIMIT) + desired_y = min(CLAMP(desired_y, picture_size_y_min, picture_size_y_max), CAMERA_PICTURE_SIZE_HARD_LIMIT) + if(user.canUseTopic(src)) + picture_size_x = desired_x + picture_size_y = desired_y + +/obj/item/camera/attack(mob/living/carbon/human/M, mob/user) + return + +/obj/item/camera/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/camera_film)) + if(pictures_left) + to_chat(user, "[src] still has some film in it!") + return + if(!user.temporarilyRemoveItemFromInventory(I)) + return + to_chat(user, "You insert [I] into [src].") + qdel(I) + pictures_left = pictures_max + return + if(istype(I, /obj/item/disk/holodisk)) + if (!disk) + if(!user.transferItemToLoc(I, src)) + to_chat(user, "[I] is stuck to your hand!") + return TRUE + to_chat(user, "You slide [I] into the back of [src].") + disk = I + else + to_chat(user, "There's already a disk inside [src].") + return TRUE //no afterattack + ..() + +/obj/item/camera/examine(mob/user) + ..() + to_chat(user, "It has [pictures_left] photos left.") + +//user can be atom or mob +/obj/item/camera/proc/can_target(atom/target, mob/user, prox_flag) + if(!on || blending || !pictures_left) + return FALSE + var/turf/T = get_turf(target) + if(!T) + return FALSE + if(istype(user)) + if(isAI(user) && !GLOB.cameranet.checkTurfVis(T)) + return FALSE + else if(user.client && !(get_turf(target) in get_hear(user.client.view, user))) + return FALSE + else if(!(get_turf(target) in get_hear(world.view, user))) + return FALSE + else //user is an atom + if(!(get_turf(target) in view(world.view, user))) + return FALSE + return TRUE + +/obj/item/camera/afterattack(atom/target, mob/user, flag) + if (disk) + if(ismob(target)) + if (disk.record) + QDEL_NULL(disk.record) + + disk.record = new + var/mob/M = target + disk.record.caller_name = M.name + disk.record.set_caller_image(M) + else + to_chat(user, "Invalid holodisk target.") + return + + if(!can_target(target, user, flag)) + return + + on = FALSE + addtimer(CALLBACK(src, .proc/cooldown), cooldown) + icon_state = state_off + + INVOKE_ASYNC(src, .proc/captureimage, target, user, flag, picture_size_x - 1, picture_size_y - 1) + + +/obj/item/camera/proc/cooldown() + UNTIL(!blending) + icon_state = state_on + on = TRUE + +/obj/item/camera/proc/show_picture(mob/user, datum/picture/selection) + var/obj/item/photo/P = new(src, selection) + P.show(user) + to_chat(user, P.desc) + qdel(P) + +/obj/item/camera/proc/captureimage(atom/target, mob/user, flag, size_x = 1, size_y = 1) + blending = TRUE + var/turf/target_turf = get_turf(target) + if(!isturf(target_turf)) + blending = FALSE + return FALSE + size_x = CLAMP(size_x, 0, CAMERA_PICTURE_SIZE_HARD_LIMIT) + size_y = CLAMP(size_y, 0, CAMERA_PICTURE_SIZE_HARD_LIMIT) + var/list/desc = list("This is a photo of an area of [size_x+1] meters by [size_y+1] meters.") + var/ai_user = isAI(user) + var/list/seen + var/list/viewlist = (user && user.client)? getviewsize(user.client.view) : getviewsize(world.view) + var/viewr = max(viewlist[1], viewlist[2]) + max(size_x, size_y) + var/viewc = user.client? user.client.eye : target + seen = get_hear(viewr, viewc) + var/list/turfs = list() + var/list/mobs = list() + var/blueprints = FALSE + var/clone_area = SSmapping.RequestBlockReservation(size_x * 2 + 1, size_y * 2 + 1) + for(var/turf/T in block(locate(target_turf.x - size_x, target_turf.y - size_y, target_turf.z), locate(target_turf.x + size_x, target_turf.y + size_y, target_turf.z))) + if((ai_user && GLOB.cameranet.checkTurfVis(T)) || (T in seen)) + turfs += T + for(var/mob/M in T) + mobs += M + if(locate(/obj/item/areaeditor/blueprints) in T) + blueprints = TRUE + for(var/i in mobs) + var/mob/M = i + desc += M.get_photo_description(src) + + var/psize_x = (size_x * 2 + 1) * world.icon_size + var/psize_y = (size_y * 2 + 1) * world.icon_size + var/get_icon = camera_get_icon(turfs, target_turf, psize_x, psize_y, clone_area, size_x, size_y, (size_x * 2 + 1), (size_y * 2 + 1)) + qdel(clone_area) + var/icon/temp = icon('icons/effects/96x96.dmi',"") + temp.Blend("#000", ICON_OVERLAY) + temp.Scale(psize_x, psize_y) + temp.Blend(get_icon, ICON_OVERLAY) + + var/datum/picture/P = new("picture", desc.Join(" "), temp, null, psize_x, psize_y, blueprints) + after_picture(user, P, flag) + blending = FALSE + +/obj/item/camera/proc/after_picture(mob/user, datum/picture/picture, proximity_flag) + printpicture(user, picture) + +/obj/item/camera/proc/printpicture(mob/user, datum/picture/picture) //Normal camera proc for creating photos + var/obj/item/photo/p = new(get_turf(src), picture) + if(in_range(src, user)) //needed because of TK + user.put_in_hands(p) + pictures_left-- + to_chat(user, "[pictures_left] photos left.") + var/customize = alert(user, "Do you want to customize the photo?", "Customization", "Yes", "No") + if(customize == "Yes") + var/name1 = input(user, "Set a name for this photo, or leave blank. 32 characters max.", "Name") as text|null + var/desc1 = input(user, "Set a description to add to photo, or leave blank. 128 characters max.", "Caption") as text|null + var/caption = input(user, "Set a caption for this photo, or leave blank. 256 characters max.", "Caption") as text|null + if(name1) + name1 = copytext(name1, 1, 33) + picture.picture_name = name1 + if(desc1) + desc1 = copytext(desc1, 1, 129) + picture.picture_desc = "[desc1] - [picture.picture_desc]" + if(caption) + caption = copytext(caption, 1, 257) + picture.caption = caption + p.set_picture(picture, TRUE, TRUE) + if(CONFIG_GET(flag/picture_logging_camera)) + picture.log_to_file() diff --git a/code/modules/photography/camera/camera_image_capturing.dm b/code/modules/photography/camera/camera_image_capturing.dm new file mode 100644 index 0000000000..fe093fa2ca --- /dev/null +++ b/code/modules/photography/camera/camera_image_capturing.dm @@ -0,0 +1,88 @@ +/obj/effect/appearance_clone + +/obj/effect/appearance_clone/New(loc, atom/A) //Intentionally not Initialize(), to make sure the clone assumes the intended appearance in time for the camera getFlatIcon. + if(istype(A)) + appearance = A.appearance + dir = A.dir + if(ismovableatom(A)) + var/atom/movable/AM = A + step_x = AM.step_x + step_y = AM.step_y + . = ..() + +/obj/item/camera/proc/camera_get_icon(list/turfs, turf/center, psize_x = 96, psize_y = 96, datum/turf_reservation/clone_area, size_x, size_y, total_x, total_y) + var/list/atoms = list() + var/skip_normal = FALSE + var/wipe_atoms = FALSE + + if(istype(clone_area) && total_x == clone_area.width && total_y == clone_area.height && size_x >= 0 && size_y > 0) + var/cloned_center_x = round(clone_area.bottom_left_coords[1] + ((total_x - 1) / 2)) + var/cloned_center_y = round(clone_area.bottom_left_coords[2] + ((total_y - 1) / 2)) + for(var/t in turfs) + var/turf/T = t + var/offset_x = T.x - center.x + var/offset_y = T.y - center.y + var/turf/newT = locate(cloned_center_x + offset_x, cloned_center_y + offset_y, clone_area.bottom_left_coords[3]) + if(!(newT in clone_area.reserved_turfs)) //sanity check so we don't overwrite other areas somehow + continue + atoms += new /obj/effect/appearance_clone(newT, T) + if(T.loc.icon_state) + atoms += new /obj/effect/appearance_clone(newT, T.loc) + for(var/i in T.contents) + var/atom/A = i + if(!A.invisibility || (see_ghosts && isobserver(A))) + atoms += new /obj/effect/appearance_clone(newT, A) + skip_normal = TRUE + wipe_atoms = TRUE + center = locate(cloned_center_x, cloned_center_y, clone_area.bottom_left_coords[3]) + + if(!skip_normal) + for(var/i in turfs) + var/turf/T = i + atoms += T + for(var/atom/movable/A in T) + if(A.invisibility) + if(!(see_ghosts && isobserver(A))) + continue + atoms += A + CHECK_TICK + + var/icon/res = icon('icons/effects/96x96.dmi', "") + res.Scale(psize_x, psize_y) + + var/list/sorted = list() + var/j + for(var/i in 1 to atoms.len) + var/atom/c = atoms[i] + for(j = sorted.len, j > 0, --j) + var/atom/c2 = sorted[j] + if(c2.layer <= c.layer) + break + sorted.Insert(j+1, c) + CHECK_TICK + + var/xcomp = FLOOR(psize_x / 2, 1) - 15 + var/ycomp = FLOOR(psize_y / 2, 1) - 15 + + + for(var/atom/A in sorted) + var/xo = (A.x - center.x) * world.icon_size + A.pixel_x + xcomp + var/yo = (A.y - center.y) * world.icon_size + A.pixel_y + ycomp + if(ismovableatom(A)) + var/atom/movable/AM = A + xo += AM.step_x + yo += AM.step_y + var/icon/img = getFlatIcon(A) + res.Blend(img, blendMode2iconMode(A.blend_mode), xo, yo) + CHECK_TICK + + if(!silent) + if(istype(custom_sound)) //This is where the camera actually finishes its exposure. + playsound(loc, custom_sound, 75, 1, -3) + else + playsound(loc, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 75, 1, -3) + + if(wipe_atoms) + QDEL_LIST(atoms) + + return res diff --git a/code/modules/photography/camera/film.dm b/code/modules/photography/camera/film.dm new file mode 100644 index 0000000000..5d69824bad --- /dev/null +++ b/code/modules/photography/camera/film.dm @@ -0,0 +1,14 @@ +/* + * Film + */ +/obj/item/camera_film + name = "film cartridge" + icon = 'icons/obj/items_and_weapons.dmi' + desc = "A camera film cartridge. Insert it into a camera to reload it." + icon_state = "film" + item_state = "electropack" + lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' + w_class = WEIGHT_CLASS_TINY + resistance_flags = FLAMMABLE + materials = list(MAT_METAL = 10, MAT_GLASS = 10) diff --git a/code/modules/photography/camera/other.dm b/code/modules/photography/camera/other.dm new file mode 100644 index 0000000000..ce2572db36 --- /dev/null +++ b/code/modules/photography/camera/other.dm @@ -0,0 +1,14 @@ +/obj/item/camera/spooky + name = "camera obscura" + desc = "A polaroid camera, some say it can see ghosts!" + see_ghosts = CAMERA_SEE_GHOSTS_BASIC + +/obj/item/camera/spooky/badmin + desc = "A polaroid camera, some say it can see ghosts! It seems to have an extra magnifier on the end." + see_ghosts = CAMERA_SEE_GHOSTS_ORBIT + +/obj/item/camera/detective + name = "Detective's camera" + desc = "A polaroid camera with extra capacity for crime investigations." + pictures_max = 30 + pictures_left = 30 diff --git a/code/modules/photography/camera/silicon_camera.dm b/code/modules/photography/camera/silicon_camera.dm new file mode 100644 index 0000000000..ad8542a5c1 --- /dev/null +++ b/code/modules/photography/camera/silicon_camera.dm @@ -0,0 +1,98 @@ + +/obj/item/camera/siliconcam + name = "silicon photo camera" + var/in_camera_mode = FALSE + var/list/datum/picture/stored = list() + +/obj/item/camera/siliconcam/ai_camera + name = "AI photo camera" + +/obj/item/camera/siliconcam/proc/toggle_camera_mode(mob/user) + if(in_camera_mode) + camera_mode_off(user) + else + camera_mode_on(user) + +/obj/item/camera/siliconcam/proc/camera_mode_off(mob/user) + in_camera_mode = FALSE + to_chat(user, "Camera Mode deactivated") + +/obj/item/camera/siliconcam/proc/camera_mode_on(mob/user) + in_camera_mode = TRUE + to_chat(user, "Camera Mode activated") + +/obj/item/camera/siliconcam/proc/selectpicture(mob/user) + var/list/nametemp = list() + var/find + if(!stored.len) + to_chat(usr, "No images saved") + return + var/list/temp = list() + for(var/i in stored) + var/datum/picture/p = i + nametemp += p.picture_name + temp[p.picture_name] = p + find = input(user, "Select image") in nametemp|null + if(!find) + return + return temp[find] + +/obj/item/camera/siliconcam/proc/viewpictures(mob/user) + var/datum/picture/selection = selectpicture(user) + if(istype(selection)) + show_picture(user, selection) + +/obj/item/camera/siliconcam/ai_camera/after_picture(mob/user, datum/picture/picture, proximity_flag) + var/number = stored.len + picture.picture_name = "Image [number] (taken by [loc.name])" + stored[picture] = TRUE + to_chat(usr, "Image recorded") + +/obj/item/camera/siliconcam/robot_camera + name = "Cyborg photo camera" + var/printcost = 2 + +/obj/item/camera/siliconcam/robot_camera/after_picture(mob/user, datum/picture/picture, proximity_flag) + var/mob/living/silicon/robot/C = loc + if(istype(C) && istype(C.connected_ai)) + var/number = C.connected_ai.aicamera.stored.len + picture.picture_name = "Image [number] (taken by [loc.name])" + C.connected_ai.aicamera.stored[picture] = TRUE + to_chat(usr, "Image recorded and saved to remote database") + else + var/number = stored.len + picture.picture_name = "Image [number] (taken by [loc.name])" + stored[picture] = TRUE + to_chat(usr, "Image recorded and saved to local storage. Upload will happen automatically if unit is lawsynced.") + +/obj/item/camera/siliconcam/robot_camera/selectpicture(mob/user) + var/mob/living/silicon/robot/R = loc + if(istype(R) && R.connected_ai) + R.picturesync() + return R.connected_ai.aicamera.selectpicture(user) + else + return ..() + +/obj/item/camera/siliconcam/robot_camera/verb/borgprinting() + set category ="Robot Commands" + set name = "Print Image" + set src in usr + if(usr.stat == DEAD) + return + borgprint(usr) + +/obj/item/camera/siliconcam/robot_camera/proc/borgprint(mob/user) + var/mob/living/silicon/robot/C = loc + if(!istype(C) || C.toner < 20) + to_chat(user, "Insufficent toner to print image.") + return + var/datum/picture/selection = selectpicture(user) + if(!istype(selection)) + to_chat(user, "Invalid Image.") + return + var/obj/item/photo/p = new /obj/item/photo(C.loc, selection) + p.pixel_x = rand(-10, 10) + p.pixel_y = rand(-10, 10) + C.toner -= printcost //All fun allowed. + visible_message("[C.name] spits out a photograph from a narrow slot on its chassis.") + to_chat(usr, "You print a photograph.") diff --git a/code/modules/photography/photos/album.dm b/code/modules/photography/photos/album.dm new file mode 100644 index 0000000000..bd77d468d7 --- /dev/null +++ b/code/modules/photography/photos/album.dm @@ -0,0 +1,75 @@ +/* + * Photo album + */ +/obj/item/storage/photo_album + name = "photo album" + icon = 'icons/obj/items_and_weapons.dmi' + icon_state = "album" + item_state = "briefcase" + lefthand_file = 'icons/mob/inhands/equipment/briefcase_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/briefcase_righthand.dmi' + resistance_flags = FLAMMABLE + var/persistence_id + +/obj/item/storage/photo_album/Initialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.can_hold = typecacheof(list(/obj/item/photo)) + STR.max_combined_w_class = 42 + STR.max_items = 21 + LAZYADD(SSpersistence.photo_albums, src) + +/obj/item/storage/photo_album/Destroy() + LAZYREMOVE(SSpersistence.photo_albums, src) + return ..() + +/obj/item/storage/photo_album/proc/get_picture_id_list() + var/list/L = list() + for(var/i in contents) + if(istype(i, /obj/item/photo)) + L += i + if(!L.len) + return + . = list() + for(var/i in L) + var/obj/item/photo/P = i + if(!istype(P.picture)) + continue + . |= P.picture.id + +//Manual loading, DO NOT USE FOR HARDCODED/MAPPED IN ALBUMS. This is for if an album needs to be loaded mid-round from an ID. +/obj/item/storage/photo_album/proc/persistence_load() + var/list/data = SSpersistence.GetPhotoAlbums() + if(data[persistence_id]) + populate_from_id_list(data[persistence_id]) + +/obj/item/storage/photo_album/proc/populate_from_id_list(list/ids) + var/list/current_ids = get_picture_id_list() + for(var/i in ids) + if(i in current_ids) + continue + var/obj/item/photo/P = load_photo_from_disk(i) + if(istype(P)) + if(!SEND_SIGNAL(src, COMSIG_TRY_STORAGE_INSERT, P, null, TRUE, TRUE)) + qdel(P) + +/obj/item/storage/photo_album/HoS + persistence_id = "HoS" + +/obj/item/storage/photo_album/RD + persistence_id = "RD" + +/obj/item/storage/photo_album/HoP + persistence_id = "HoP" + +/obj/item/storage/photo_album/Captain + persistence_id = "Captain" + +/obj/item/storage/photo_album/CMO + persistence_id = "CMO" + +/obj/item/storage/photo_album/QM + persistence_id = "QM" + +/obj/item/storage/photo_album/CE + persistence_id = "CE" diff --git a/code/modules/photography/photos/frame.dm b/code/modules/photography/photos/frame.dm new file mode 100644 index 0000000000..f379541b9c --- /dev/null +++ b/code/modules/photography/photos/frame.dm @@ -0,0 +1,163 @@ +// Picture frames + +/obj/item/wallframe/picture + name = "picture frame" + desc = "The perfect showcase for your favorite deathtrap memories." + icon = 'icons/obj/decals.dmi' + materials = list() + flags_1 = 0 + icon_state = "frame-empty" + result_path = /obj/structure/sign/picture_frame + var/obj/item/photo/displayed + +/obj/item/wallframe/picture/attackby(obj/item/I, mob/user) + if(istype(I, /obj/item/photo)) + if(!displayed) + if(!user.transferItemToLoc(I, src)) + return + displayed = I + update_icon() + else + to_chat(user, "\The [src] already contains a photo.") + ..() + +//ATTACK HAND IGNORING PARENT RETURN VALUE +/obj/item/wallframe/picture/attack_hand(mob/user) + if(user.get_inactive_held_item() != src) + ..() + return + if(contents.len) + var/obj/item/I = pick(contents) + user.put_in_hands(I) + to_chat(user, "You carefully remove the photo from \the [src].") + displayed = null + update_icon() + return ..() + +/obj/item/wallframe/picture/attack_self(mob/user) + user.examinate(src) + +/obj/item/wallframe/picture/examine(mob/user) + if(user.is_holding(src) && displayed) + displayed.show(user) + else + ..() + +/obj/item/wallframe/picture/update_icon() + cut_overlays() + if(displayed) + add_overlay(getFlatIcon(displayed)) + +/obj/item/wallframe/picture/after_attach(obj/O) + ..() + var/obj/structure/sign/picture_frame/PF = O + PF.copy_overlays(src) + if(displayed) + PF.framed = displayed + if(contents.len) + var/obj/item/I = pick(contents) + I.forceMove(PF) + +/obj/structure/sign/picture_frame + name = "picture frame" + desc = "Every time you look it makes you laugh." + icon = 'icons/obj/decals.dmi' + icon_state = "frame-empty" + var/obj/item/photo/framed + var/persistence_id + var/can_decon = TRUE + +#define FRAME_DEFINE(id) /obj/structure/sign/picture_frame/##id/persistence_id = #id + +//Put default persistent frame defines here! + +#undef FRAME_DEFINE + +/obj/structure/sign/picture_frame/Initialize(mapload, dir, building) + . = ..() + LAZYADD(SSpersistence.photo_frames, src) + 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/picture_frame/Destroy() + LAZYREMOVE(SSpersistence.photo_frames, src) + return ..() + +/obj/structure/sign/picture_frame/proc/get_photo_id() + if(istype(framed) && istype(framed.picture)) + return framed.picture.id + +//Manual loading, DO NOT USE FOR HARDCODED/MAPPED IN ALBUMS. This is for if an album needs to be loaded mid-round from an ID. +/obj/structure/sign/picture_frame/proc/persistence_load() + var/list/data = SSpersistence.GetPhotoFrames() + if(data[persistence_id]) + load_from_id(data[persistence_id]) + +/obj/structure/sign/picture_frame/proc/load_from_id(id) + var/obj/item/photo/P = load_photo_from_disk(id) + if(istype(P)) + if(istype(framed)) + framed.forceMove(drop_location()) + else + qdel(framed) + framed = P + update_icon() + +/obj/structure/sign/picture_frame/examine(mob/user) + if(in_range(src, user) && framed) + framed.show(user) + else + ..() + +/obj/structure/sign/picture_frame/attackby(obj/item/I, mob/user, params) + if(can_decon && (istype(I, /obj/item/screwdriver) || istype(I, /obj/item/wrench))) + to_chat(user, "You start unsecuring [name]...") + if(I.use_tool(src, user, 30, volume=50)) + playsound(loc, 'sound/items/deconstruct.ogg', 50, 1) + to_chat(user, "You unsecure [name].") + deconstruct() + + else if(istype(I, /obj/item/wirecutters) && framed) + framed.forceMove(drop_location()) + framed = null + user.visible_message("[user] cuts away [framed] from [src]!") + return + + else if(istype(I, /obj/item/photo)) + if(!framed) + var/obj/item/photo/P = I + if(!user.transferItemToLoc(P, src)) + return + framed = P + update_icon() + else + to_chat(user, "\The [src] already contains a photo.") + + ..() + +/obj/structure/sign/picture_frame/attack_hand(mob/user) + . = ..() + if(.) + return + if(framed) + framed.show(user) + +/obj/structure/sign/picture_frame/update_icon() + cut_overlays() + if(framed) + add_overlay(getFlatIcon(framed)) + +/obj/structure/sign/picture_frame/deconstruct(disassembled = TRUE) + if(!(flags_1 & NODECONSTRUCT_1)) + var/obj/item/wallframe/picture/F = new /obj/item/wallframe/picture(loc) + if(framed) + F.displayed = framed + framed = null + if(contents.len) + var/obj/item/I = pick(contents) + I.forceMove(F) + F.update_icon() + qdel(src) diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm new file mode 100644 index 0000000000..99e61cf3f0 --- /dev/null +++ b/code/modules/photography/photos/photo.dm @@ -0,0 +1,93 @@ +/* + * Photo + */ +/obj/item/photo + name = "photo" + icon = 'icons/obj/items_and_weapons.dmi' + icon_state = "photo" + item_state = "paper" + w_class = WEIGHT_CLASS_TINY + resistance_flags = FLAMMABLE + max_integrity = 50 + grind_results = list("iodine" = 4) + var/datum/picture/picture + var/scribble //Scribble on the back. + +/obj/item/photo/Initialize(mapload, datum/picture/P, datum_name = TRUE, datum_desc = TRUE) + set_picture(P, datum_name, datum_desc, TRUE) + return ..() + +/obj/item/photo/proc/set_picture(datum/picture/P, setname, setdesc, name_override = FALSE) + if(!istype(P)) + return + picture = P + update_icon() + if(P.caption) + scribble = P.caption + if(setname && P.picture_name) + if(name_override) + name = P.picture_name + else + name = "photo - [P.picture_name]" + if(setdesc && P.picture_desc) + desc = P.picture_desc + +/obj/item/photo/update_icon() + if(!istype(picture) || !picture.picture_image) + return + var/icon/I = picture.get_small_icon() + if(I) + icon = I + +/obj/item/photo/suicide_act(mob/living/carbon/user) + user.visible_message("[user] is taking one last look at \the [src]! It looks like [user.p_theyre()] giving in to death!")//when you wanna look at photo of waifu one last time before you die... + if (user.gender == MALE) + playsound(user, 'sound/voice/human/manlaugh1.ogg', 50, 1)//EVERY TIME I DO IT MAKES ME LAUGH + else if (user.gender == FEMALE) + playsound(user, 'sound/voice/human/womanlaugh.ogg', 50, 1) + return OXYLOSS + +/obj/item/photo/attack_self(mob/user) + user.examinate(src) + +/obj/item/photo/attackby(obj/item/P, mob/user, params) + if(istype(P, /obj/item/pen) || istype(P, /obj/item/toy/crayon)) + if(!user.is_literate()) + to_chat(user, "You scribble illegibly on [src]!") + return + var/txt = sanitize(input(user, "What would you like to write on the back?", "Photo Writing", null) as text) + txt = copytext(txt, 1, 128) + if(user.canUseTopic(src, BE_CLOSE)) + scribble = txt + ..() + +/obj/item/photo/examine(mob/user) + ..() + + if(in_range(src, user)) + show(user) + else + to_chat(user, "You need to get closer to get a good look at this photo!") + +/obj/item/photo/proc/show(mob/user) + if(!istype(picture) || !picture.picture_image) + to_chat(user, "[src] seems to be blank...") + return + user << browse_rsc(picture.picture_image, "tmp_photo.png") + user << browse("[name]" \ + + "" \ + + "" \ + + "[scribble ? "
    Written on the back:
    [scribble]" : ""]"\ + + "", "window=photo_showing;size=480x608") + onclose(user, "[name]") + +/obj/item/photo/verb/rename() + set name = "Rename photo" + set category = "Object" + set src in usr + + var/n_name = copytext(sanitize(input(usr, "What would you like to label the photo?", "Photo Labelling", null) as text), 1, MAX_NAME_LEN) + //loc.loc check is for making possible renaming photos in clipboards + if((loc == usr || loc.loc && loc.loc == usr) && usr.stat == CONSCIOUS && usr.canmove && !usr.restrained()) + name = "photo[(n_name ? text("- '[n_name]'") : null)]" + add_fingerprint(usr) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 8ac29205aa..c3c872d211 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -101,10 +101,11 @@ var/update_state = -1 var/update_overlay = -1 var/icon_update_needed = FALSE + var/obj/machinery/computer/apc_control/remote_control = null /obj/machinery/power/apc/unlocked locked = FALSE - + /obj/machinery/power/apc/syndicate //general syndicate access req_access = list(ACCESS_SYNDICATE) @@ -116,21 +117,25 @@ /obj/machinery/power/apc/highcap/fifteen_k cell_type = /obj/item/stock_parts/cell/high/plus - + /obj/machinery/power/apc/auto_name auto_name = TRUE - -/obj/machinery/power/apc/auto_name/north + +/obj/machinery/power/apc/auto_name/north //Pixel offsets get overwritten on New() dir = NORTH - + pixel_y = 23 + /obj/machinery/power/apc/auto_name/south dir = SOUTH + pixel_y = -23 /obj/machinery/power/apc/auto_name/east dir = EAST - + pixel_x = 24 + /obj/machinery/power/apc/auto_name/west dir = WEST + pixel_x = -25 /obj/machinery/power/apc/get_cell() return cell @@ -878,6 +883,16 @@ return FALSE return TRUE +/obj/machinery/power/apc/can_interact(mob/user) + . = ..() + if (!. && !QDELETED(remote_control)) + . = remote_control.can_interact(user) + +/obj/machinery/power/apc/ui_status(mob/user) + . = ..() + if (!QDELETED(remote_control) && user == remote_control.operator) + . = UI_INTERACTIVE + /obj/machinery/power/apc/ui_act(action, params) if(..() || !can_use(usr, 1) || (locked && !usr.has_unlimited_silicon_privilege && !failure_timer && !(integration_cog && (is_servant_of_ratvar(usr))))) return diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index e3b2bf59ca..d0becf53f7 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -31,16 +31,19 @@ var/allow_switch_interact = TRUE var/projectile_type = /obj/item/projectile/beam/emitter - var/projectile_sound = 'sound/weapons/emitter.ogg' - var/datum/effect_system/spark_spread/sparks + var/obj/item/gun/energy/gun + var/list/gun_properties + var/mode = 0 + // The following 3 vars are mostly for the prototype var/manual = FALSE var/charge = 0 var/last_projectile_params + /obj/machinery/power/emitter/anchored anchored = TRUE @@ -269,6 +272,8 @@ return TRUE /obj/machinery/power/emitter/crowbar_act(mob/living/user, obj/item/I) + if(panel_open && gun) + return remove_gun(user) default_deconstruction_crowbar(I) return TRUE @@ -295,9 +300,42 @@ else if(is_wire_tool(I) && panel_open) wires.interact(user) return - + else if(panel_open && !gun && istype(I,/obj/item/gun/energy)) + if(integrate(I,user)) + return return ..() +/obj/machinery/power/emitter/proc/integrate(obj/item/gun/energy/E,mob/user) + if(istype(E, /obj/item/gun/energy)) + if(!user.transferItemToLoc(E, src)) + return + gun = E + gun_properties = gun.get_turret_properties() + set_projectile() + return TRUE + +/obj/machinery/power/emitter/proc/remove_gun(mob/user) + if(!gun) + return + user.put_in_hands(gun) + gun = null + playsound(src, 'sound/items/deconstruct.ogg', 50, 1) + gun_properties = list() + set_projectile() + return TRUE + +/obj/machinery/power/emitter/proc/set_projectile() + if(LAZYLEN(gun_properties)) + if(mode || !gun_properties["lethal_projectile"]) + projectile_type = gun_properties["stun_projectile"] + projectile_sound = gun_properties["stun_projectile_sound"] + else + projectile_type = gun_properties["lethal_projectile"] + projectile_sound = gun_properties["lethal_projectile_sound"] + return + projectile_type = initial(projectile_type) + projectile_sound = initial(projectile_sound) + /obj/machinery/power/emitter/emag_act(mob/user) if(obj_flags & EMAGGED) return diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 4a8ee61f0f..aad401de2b 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -53,11 +53,11 @@ terminal = term break dir_loop - if(!terminal) - stat |= BROKEN - return - terminal.master = src - update_icon() + if(!terminal) + stat |= BROKEN + return + terminal.master = src + update_icon() /obj/machinery/power/smes/RefreshParts() var/IO = 0 @@ -141,11 +141,7 @@ //build the terminal and link it to the network make_terminal(T) terminal.connect_to_network() - return - - //disassembling the terminal - if(istype(I, /obj/item/wirecutters) && terminal && panel_open) - terminal.dismantle(user, I) + connect_to_network() return //crowbarring it ! @@ -160,6 +156,13 @@ return ..() +/obj/machinery/power/smes/wirecutter_act(mob/living/user, obj/item/I) + //disassembling the terminal + if(terminal && panel_open) + terminal.dismantle(user, I) + return TRUE + + /obj/machinery/power/smes/default_deconstruction_crowbar(obj/item/crowbar/C) if(istype(C) && terminal) to_chat(usr, "You must first remove the power terminal!") diff --git a/code/modules/procedural_mapping/mapGenerators/repair.dm b/code/modules/procedural_mapping/mapGenerators/repair.dm index 99750ed9d0..7516f29266 100644 --- a/code/modules/procedural_mapping/mapGenerators/repair.dm +++ b/code/modules/procedural_mapping/mapGenerators/repair.dm @@ -21,13 +21,12 @@ return var/datum/mapGenerator/repair/reload_station_map/mother1 = mother GLOB.reloading_map = TRUE - var/static/datum/maploader/reloader = new // This is kind of finicky on multi-Z maps but the reader would need to be // changed to allow Z cropping and that's a mess var/z_offset = SSmapping.station_start var/list/bounds for (var/path in SSmapping.config.GetFullMapPaths()) - var/datum/parsed_map/parsed = reloader.load_map(file(path), measureOnly = FALSE, no_changeturf = FALSE,x_offset = 0, y_offset = 0, z_offset = z_offset, cropMap=TRUE, lower_crop_x = mother1.x_low, lower_crop_y = mother1.y_low, upper_crop_x = mother1.x_high, upper_crop_y = mother1.y_high) + var/datum/parsed_map/parsed = load_map(file(path), 1, 1, z_offset, measureOnly = FALSE, no_changeturf = FALSE, cropMap=TRUE, x_lower = mother1.x_low, y_lower = mother1.y_low, x_upper = mother1.x_high, y_upper = mother1.y_high) bounds = parsed?.bounds z_offset += bounds[MAP_MAXZ] - bounds[MAP_MINZ] + 1 diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index c766d1c94e..6e8174b356 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -25,7 +25,7 @@ /obj/item/gun/energy/laser/retro/old name ="laser gun" icon_state = "retro" - desc = "First generation lasergun, developed by Nanotrasen. Suffers from ammo issues but its unique ability to recharge its ammo without the need of a magazine helps compensate. You really hope someone has developed a better lasergun while you were in cyro." + desc = "First generation lasergun, developed by Nanotrasen. Suffers from ammo issues but its unique ability to recharge its ammo without the need of a magazine helps compensate. You really hope someone has developed a better lasergun while you were in cryo." ammo_type = list(/obj/item/ammo_casing/energy/lasergun/old) ammo_x_offset = 3 diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm index b4abd5878e..d2a703ef22 100644 --- a/code/modules/projectiles/guns/misc/beam_rifle.dm +++ b/code/modules/projectiles/guns/misc/beam_rifle.dm @@ -285,7 +285,7 @@ if(istype(user)) current_user = user LAZYOR(current_user.mousemove_intercept_objects, src) - mobhook = user.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED), CALLBACK(src, .proc/on_mob_move)) + mobhook = user.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, .proc/on_mob_move))) /obj/item/gun/energy/beam_rifle/onMouseDrag(src_object, over_object, src_location, over_location, params, mob) if(aiming) @@ -555,10 +555,10 @@ if(highlander && istype(gun)) QDEL_LIST(gun.current_tracers) for(var/datum/point/p in beam_segments) - gun.current_tracers += generate_tracer_between_points(p, beam_segments[p], tracer_type, color, 0) + gun.current_tracers += generate_tracer_between_points(p, beam_segments[p], tracer_type, color, 0, hitscan_light_range, hitscan_light_color_override, hitscan_light_intensity) else for(var/datum/point/p in beam_segments) - generate_tracer_between_points(p, beam_segments[p], tracer_type, color, duration) + generate_tracer_between_points(p, beam_segments[p], tracer_type, color, duration, hitscan_light_range, hitscan_light_color_override, hitscan_light_intensity) if(cleanup) QDEL_LIST(beam_segments) beam_segments = null @@ -572,6 +572,9 @@ nodamage = TRUE damage = 0 constant_tracer = TRUE + hitscan_light_range = 0 + hitscan_light_intensity = 0 + hitscan_light_color_override = "#99ff99" /obj/item/projectile/beam/beam_rifle/hitscan/aiming_beam/prehit(atom/target) qdel(src) diff --git a/code/modules/projectiles/guns/misc/blastcannon.dm b/code/modules/projectiles/guns/misc/blastcannon.dm index df1f9fdfbd..6c685ebe89 100644 --- a/code/modules/projectiles/guns/misc/blastcannon.dm +++ b/code/modules/projectiles/guns/misc/blastcannon.dm @@ -102,9 +102,8 @@ playsound(user, "explosion", 100, 1) var/turf/starting = get_turf(user) var/turf/targturf = get_turf(target) - var/log_str = "Blast wave fired from [ADMIN_VERBOSEJMP(starting)] ([get_area_name(user, TRUE)]) at [ADMIN_VERBOSEJMP(targturf)] ([target.name]) by [user.name]([user.ckey]) with power [heavy]/[medium]/[light]." - message_admins(log_str) - log_game(log_str) + message_admins("Blast wave fired from [ADMIN_VERBOSEJMP(starting)] at [ADMIN_VERBOSEJMP(targturf)] ([target.name]) by [key_name_admin(user)] with power [heavy]/[medium]/[light].") + log_game("Blast wave fired from [AREACOORD(starting)] at [AREACOORD(targturf)] ([target.name]) by [key_name(user)] with power [heavy]/[medium]/[light].") var/obj/item/projectile/blastwave/BW = new(loc, heavy, medium, light) BW.hugbox = hugbox BW.preparePixelProjectile(target, get_turf(src), params, 0) @@ -158,4 +157,4 @@ lightr = max(lightr - 1, 0) /obj/item/projectile/blastwave/ex_act() - return \ No newline at end of file + return diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 1ae5b31b3f..44fca82f76 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -36,7 +36,6 @@ var/trajectory_ignore_forcemove = FALSE //instructs forceMove to NOT reset our trajectory to the new location! var/speed = 0.8 //Amount of deciseconds it takes for projectile to travel - var/pixel_speed = 32 //pixels per move - DO NOT FUCK WITH THIS UNLESS YOU ABSOLUTELY KNOW WHAT YOU ARE DOING OR UNEXPECTED THINGS /WILL/ HAPPEN! 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 @@ -55,6 +54,17 @@ var/muzzle_type var/impact_type + //Fancy hitscan lighting effects! + var/hitscan_light_intensity = 1.5 + var/hitscan_light_range = 0.75 + var/hitscan_light_color_override + var/muzzle_flash_intensity = 3 + var/muzzle_flash_range = 1.5 + var/muzzle_flash_color_override + var/impact_light_intensity = 3 + var/impact_light_range = 2 + var/impact_light_color_override + //Homing var/homing = FALSE var/atom/homing_target @@ -287,8 +297,8 @@ 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, pixel_speed) - var/datum/point/vector/v = current.return_vector_after_increments(moves) + 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) return v.return_turf() /obj/item/projectile/proc/return_pathing_turfs_in_moves(moves, forced_angle) @@ -320,7 +330,7 @@ time_offset += MODULUS(elapsed_time_deciseconds, speed) for(var/i in 1 to required_moves) - pixel_move(required_moves) + pixel_move(1, FALSE) /obj/item/projectile/proc/fire(angle, atom/direct_target) //If no angle needs to resolve it from xo/yo! @@ -351,14 +361,14 @@ trajectory_ignore_forcemove = TRUE forceMove(starting) trajectory_ignore_forcemove = FALSE - trajectory = new(starting.x, starting.y, starting.z, pixel_x, pixel_y, Angle, pixel_speed) + trajectory = new(starting.x, starting.y, starting.z, pixel_x, pixel_y, Angle, SSprojectiles.global_pixel_speed) last_projectile_move = world.time fired = TRUE if(hitscan) process_hitscan() if(!(datum_flags & DF_ISPROCESSING)) START_PROCESSING(SSprojectiles, src) - pixel_move(1) //move it now! + pixel_move(1, FALSE) //move it now! /obj/item/projectile/proc/setAngle(new_angle) //wrapper for overrides. Angle = new_angle @@ -391,6 +401,20 @@ /obj/item/projectile/proc/before_z_change(atom/oldloc, atom/newloc) +/obj/item/projectile/vv_edit_var(var_name, var_value) + switch(var_name) + if(NAMEOF(src, Angle)) + setAngle(var_value) + return TRUE + else + return ..() + +/obj/item/projectile/proc/set_pixel_speed(new_speed) + if(trajectory) + trajectory.set_speed(new_speed) + return TRUE + return FALSE + /obj/item/projectile/proc/record_hitscan_start(datum/point/pcache) if(pcache) beam_segments = list() @@ -405,12 +429,14 @@ stoplag(1) continue if(safety-- <= 0) - qdel(src) - stack_trace("WARNING: [type] projectile encountered infinite recursion during hitscanning in [__FILE__]/[__LINE__]!") + if(loc) + Bump(loc) + if(!QDELETED(src)) + qdel(src) return //Kill! - pixel_move(1, 1, TRUE) + pixel_move(1, TRUE) -/obj/item/projectile/proc/pixel_move(moves, trajectory_multiplier = 1, hitscanning = FALSE) +/obj/item/projectile/proc/pixel_move(trajectory_multiplier, hitscanning = FALSE) if(!loc || !trajectory) return last_projectile_move = world.time @@ -420,32 +446,36 @@ transform = M if(homing) process_homing() - trajectory.increment(trajectory_multiplier) - var/turf/T = trajectory.return_turf() - if(!istype(T)) - qdel(src) - return - if(T.z != loc.z) - var/old = loc - before_z_change(loc, T) - trajectory_ignore_forcemove = TRUE - forceMove(T) - trajectory_ignore_forcemove = FALSE - after_z_change(old, loc) - if(!hitscanning) - pixel_x = trajectory.return_px() - pixel_y = trajectory.return_py() - else - step_towards(src, T) - if(!hitscanning) - pixel_x = trajectory.return_px() - trajectory.mpx * trajectory_multiplier - pixel_y = trajectory.return_py() - trajectory.mpy * trajectory_multiplier - if(!hitscanning) + var/forcemoved = FALSE + for(var/i in 1 to SSprojectiles.global_iterations_per_move) + if(QDELETED(src)) + return + trajectory.increment(trajectory_multiplier) + var/turf/T = trajectory.return_turf() + if(!istype(T)) + qdel(src) + return + if(T.z != loc.z) + var/old = loc + before_z_change(loc, T) + trajectory_ignore_forcemove = TRUE + forceMove(T) + trajectory_ignore_forcemove = FALSE + after_z_change(old, loc) + if(!hitscanning) + pixel_x = trajectory.return_px() + pixel_y = trajectory.return_py() + forcemoved = TRUE + hitscan_last = loc + else if(T != loc) + step_towards(src, T) + hitscan_last = loc + if(can_hit_target(original, permutated)) + Bump(original) + 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) - if(isturf(loc)) - hitscan_last = loc - if(can_hit_target(original, permutated)) - Bump(original) Range() /obj/item/projectile/proc/process_homing() //may need speeding up in the future performance wise. @@ -560,8 +590,9 @@ if(!length(beam_segments)) return if(tracer_type) + var/tempref = REF(src) for(var/datum/point/p in beam_segments) - generate_tracer_between_points(p, beam_segments[p], tracer_type, color, duration) + generate_tracer_between_points(p, beam_segments[p], tracer_type, color, duration, hitscan_light_range, hitscan_light_color_override, hitscan_light_intensity, tempref) if(muzzle_type && duration > 0) var/datum/point/p = beam_segments[1] var/atom/movable/thing = new muzzle_type @@ -569,6 +600,8 @@ var/matrix/M = new M.Turn(original_angle) thing.transform = M + thing.color = color + thing.set_light(muzzle_flash_range, muzzle_flash_intensity, muzzle_flash_color_override? muzzle_flash_color_override : color) QDEL_IN(thing, duration) if(impacting && impact_type && duration > 0) var/datum/point/p = beam_segments[beam_segments[beam_segments.len]] @@ -577,6 +610,8 @@ var/matrix/M = new M.Turn(Angle) thing.transform = M + thing.color = color + thing.set_light(impact_light_range, impact_light_intensity, impact_light_color_override? impact_light_color_override : color) QDEL_IN(thing, duration) if(cleanup) cleanup_beam_segments() diff --git a/code/modules/projectiles/projectile/energy/nuclear_particle.dm b/code/modules/projectiles/projectile/energy/nuclear_particle.dm new file mode 100644 index 0000000000..1753587ad3 --- /dev/null +++ b/code/modules/projectiles/projectile/energy/nuclear_particle.dm @@ -0,0 +1,46 @@ +//Nuclear particle projectile - a deadly side effect of fusion +/obj/item/projectile/energy/nuclear_particle + name = "nuclear particle" + icon_state = "nuclear_particle" + pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE + damage = 20 + damage_type = TOX + irradiate = 2500 //enough to knockdown and induce vomiting + speed = 0.4 + hitsound = 'sound/weapons/emitter2.ogg' + impact_type = /obj/effect/projectile/impact/xray + var/static/list/particle_colors = list( + "red" = "#FF0000", + "blue" = "#00FF00", + "green" = "#0000FF", + "yellow" = "#FFFF00", + "cyan" = "#00FFFF", + "purple" = "#FF00FF" + ) + +/obj/item/projectile/energy/nuclear_particle/Initialize() + . = ..() + //Random color time! + var/our_color = pick(particle_colors) + add_atom_colour(particle_colors[our_color], FIXED_COLOUR_PRIORITY) + set_light(4, 3, particle_colors[our_color]) //Range of 4, brightness of 3 - Same range as a flashlight + +/atom/proc/fire_nuclear_particles(power_ratio) //used by fusion to fire random # of nuclear particles - power ratio determines about how many are fired + var/random_particles = rand(3,6) + var/particles_to_fire + var/particles_fired + switch(power_ratio) //multiply random_particles * factor for whatever tier + if(0 to FUSION_MID_TIER_THRESHOLD) + particles_to_fire = random_particles * FUSION_PARTICLE_FACTOR_LOW + if(FUSION_MID_TIER_THRESHOLD to FUSION_HIGH_TIER_THRESHOLD) + particles_to_fire = random_particles * FUSION_PARTICLE_FACTOR_MID + if(FUSION_HIGH_TIER_THRESHOLD to FUSION_SUPER_TIER_THRESHOLD) + particles_to_fire = random_particles * FUSION_PARTICLE_FACTOR_HIGH + if(FUSION_SUPER_TIER_THRESHOLD to INFINITY) + particles_to_fire = random_particles * FUSION_PARTICLE_FACTOR_SUPER + while(particles_to_fire) + particles_fired++ + var/angle = rand(0,360) + var/obj/item/projectile/energy/nuclear_particle/P = new /obj/item/projectile/energy/nuclear_particle(src) + addtimer(CALLBACK(P, /obj/item/projectile.proc/fire, angle), particles_fired) //multiply particles fired * delay so the particles end up stagnated (once every decisecond) + particles_to_fire-- \ No newline at end of file diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 1d430aaafc..b14d14d906 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -244,7 +244,7 @@ to_chat(new_mob, "Your form morphs into that of a [randomize].") - var/poly_msg = CONFIG_GET(keyed_string_list/policy)["polymorph"] + var/poly_msg = CONFIG_GET(keyed_list/policy)["polymorph"] if(poly_msg) to_chat(new_mob, poly_msg) diff --git a/code/modules/projectiles/projectile/special/wormhole.dm b/code/modules/projectiles/projectile/special/wormhole.dm index ae69d2d2ca..07b56a133f 100644 --- a/code/modules/projectiles/projectile/special/wormhole.dm +++ b/code/modules/projectiles/projectile/special/wormhole.dm @@ -2,6 +2,7 @@ name = "bluespace beam" icon_state = "spark" hitsound = "sparks" + damage = 0 nodamage = TRUE pass_flags = PASSGLASS | PASSTABLE | PASSGRILLE | PASSMOB var/obj/item/gun/energy/wormhole_projector/gun @@ -9,6 +10,7 @@ tracer_type = /obj/effect/projectile/tracer/wormhole impact_type = /obj/effect/projectile/impact/wormhole muzzle_type = /obj/effect/projectile/muzzle/wormhole + hitscan = TRUE /obj/item/projectile/beam/wormhole/orange name = "orange bluespace beam" @@ -19,7 +21,9 @@ if(casing) gun = casing.gun + /obj/item/projectile/beam/wormhole/on_hit(atom/target) if(!gun) qdel(src) + return gun.create_portal(src, get_turf(src)) diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 2def04cc66..33df6edfe6 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -550,7 +550,7 @@ if(!D) WARNING("[my_atom] attempted to add a reagent called '[reagent]' which doesn't exist. ([usr])") return FALSE - + update_total() var/cached_total = total_volume if(cached_total + amount > maximum_volume) @@ -594,14 +594,14 @@ if(data) R.data = data R.on_new(data) - + + if(isliving(my_atom)) + R.on_mob_add(my_atom) //Must occur befor it could posibly run on_mob_delete update_total() if(my_atom) my_atom.on_reagent_change(ADD_REAGENT) if(!no_react) handle_reactions() - if(isliving(my_atom)) - R.on_mob_add(my_atom) return TRUE /datum/reagents/proc/add_reagent_list(list/list_reagents, list/data=null) // Like add_reagent but you can enter a list. Format it like this: list("toxin" = 10, "beer" = 15) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index da94c16adf..a553144fd4 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -384,6 +384,16 @@ final_list += list(avoid_assoc_duplicate_keys(fuck[1],key_list) = text2num(fuck[2])) return final_list +/obj/machinery/chem_dispenser/drinks/Initialize() + . = ..() + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE) + +/obj/machinery/chem_dispenser/drinks/setDir() + var/old = dir + . = ..() + if(dir != old) + update_icon() // the beaker needs to be re-positioned if we rotate + /obj/machinery/chem_dispenser/drinks/display_beaker() var/mutable_appearance/b_o = beaker_overlay || mutable_appearance(icon, "disp_beaker") switch(dir) @@ -413,6 +423,7 @@ circuit = /obj/item/circuitboard/machine/chem_dispenser/drinks working_state = null nopower_state = null + pass_flags = PASSTABLE dispensable_reagents = list( "water", "ice", @@ -444,6 +455,24 @@ "tirizene" ) +/obj/machinery/chem_dispenser/drinks/fullupgrade //fully ugpraded stock parts, emagged + desc = "Contains a large reservoir of soft drinks. This model has had its safeties shorted out." + obj_flags = CAN_BE_HIT | EMAGGED + flags_1 = NODECONSTRUCT_1 + +/obj/machinery/chem_dispenser/drinks/fullupgrade/Initialize() + . = ..() + dispensable_reagents |= emagged_reagents //adds emagged reagents + component_parts = list() + component_parts += new /obj/item/circuitboard/machine/chem_dispenser/drinks(null) + component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null) + component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null) + component_parts += new /obj/item/stock_parts/capacitor/quadratic(null) + component_parts += new /obj/item/stock_parts/manipulator/femto(null) + component_parts += new /obj/item/stack/sheet/glass(null) + component_parts += new /obj/item/stock_parts/cell/bluespace(null) + RefreshParts() + /obj/machinery/chem_dispenser/drinks/beer name = "booze dispenser" desc = "Contains a large reservoir of the good stuff." @@ -477,6 +506,23 @@ "fernet" ) +/obj/machinery/chem_dispenser/drinks/beer/fullupgrade //fully ugpraded stock parts, emagged + desc = "Contains a large reservoir of the good stuff. This model has had its safeties shorted out." + obj_flags = CAN_BE_HIT | EMAGGED + flags_1 = NODECONSTRUCT_1 + +/obj/machinery/chem_dispenser/drinks/beer/fullupgrade/Initialize() + . = ..() + dispensable_reagents |= emagged_reagents //adds emagged reagents + component_parts = list() + component_parts += new /obj/item/circuitboard/machine/chem_dispenser/drinks/beer(null) + component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null) + component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null) + component_parts += new /obj/item/stock_parts/capacitor/quadratic(null) + component_parts += new /obj/item/stock_parts/manipulator/femto(null) + component_parts += new /obj/item/stack/sheet/glass(null) + component_parts += new /obj/item/stock_parts/cell/bluespace(null) + RefreshParts() /obj/machinery/chem_dispenser/mutagen name = "mutagen dispenser" @@ -488,6 +534,8 @@ /obj/machinery/chem_dispenser/mutagensaltpeter name = "botanical chemical dispenser" desc = "Creates and dispenses chemicals useful for botany." + flags_1 = NODECONSTRUCT_1 + dispensable_reagents = list( "mutagen", "saltpetre", @@ -502,11 +550,27 @@ "ammonia", "ash", "diethylamine") + +/obj/machinery/chem_dispenser/mutagensaltpeter/Initialize() + . = ..() + component_parts = list() + component_parts += new /obj/item/circuitboard/machine/chem_dispenser(null) + component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null) + component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null) + component_parts += new /obj/item/stock_parts/capacitor/quadratic(null) + component_parts += new /obj/item/stock_parts/manipulator/femto(null) + component_parts += new /obj/item/stack/sheet/glass(null) + component_parts += new /obj/item/stock_parts/cell/bluespace(null) + RefreshParts() -/obj/machinery/chem_dispenser/fullupgrade //fully upgraded stock parts +/obj/machinery/chem_dispenser/fullupgrade //fully ugpraded stock parts, emagged + desc = "Creates and dispenses chemicals. This model has had its safeties shorted out." + obj_flags = CAN_BE_HIT | EMAGGED + flags_1 = NODECONSTRUCT_1 /obj/machinery/chem_dispenser/fullupgrade/Initialize() . = ..() + dispensable_reagents |= emagged_reagents //adds emagged reagents component_parts = list() component_parts += new /obj/item/circuitboard/machine/chem_dispenser(null) component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null) diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 252f349a9f..5107ed27b9 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -1697,7 +1697,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "glass of fernet cola" glass_desc = "A sawed-off cola bottle filled with Fernet Cola. Nothing better after eating like a lardass." -/datum/reagent/consumable/ethanol/fernetcola/on_mob_life(mob/living/carbon/M) +/datum/reagent/consumable/ethanol/fernet_cola/on_mob_life(mob/living/carbon/M) if(M.nutrition <= NUTRITION_LEVEL_STARVING) M.adjustToxLoss(0.5*REM, 0) M.nutrition = max(M.nutrition - 3, 0) diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index 33511c8905..a5ea41628d 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -132,7 +132,7 @@ ..() . = 1 -/datum/reagent/krokodil/addiction_act_stage2(mob/living/M) +/datum/reagent/drug/krokodil/addiction_act_stage2(mob/living/M) if(prob(25)) to_chat(M, "Your skin feels loose...") ..() diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 459cbefaa2..480e186976 100755 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -491,8 +491,10 @@ /datum/reagent/consumable/flour/reaction_turf(turf/T, reac_volume) if(!isspaceturf(T)) - var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/flour(T) - reagentdecal.reagents.add_reagent("flour", reac_volume) + var/obj/effect/decal/cleanable/flour/reagentdecal = new/obj/effect/decal/cleanable/flour(T) + reagentdecal = locate() in T //Might have merged with flour already there. + if(reagentdecal) + reagentdecal.reagents.add_reagent("flour", reac_volume) /datum/reagent/consumable/cherryjelly name = "Cherry Jelly" diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 20f8afb2df..95e27a58c5 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -218,9 +218,9 @@ M.stuttering = 1 M.stuttering = min(M.stuttering+4, 10) M.Dizzy(5) - if(iscultist(M) && prob(8)) + if(iscultist(M) && prob(20)) M.say(pick("Av'te Nar'sie","Pa'lid Mors","INO INO ORA ANA","SAT ANA!","Daim'niodeis Arc'iai Le'eones","R'ge Na'sie","Diabo us Vo'iscum","Eld' Mon Nobis")) - if(prob(20)) + if(prob(10)) M.visible_message("[M] starts having a seizure!", "You have a seizure!") M.Unconscious(120) to_chat(M, "[pick("Your blood is your bond - you are nothing without it", "Do not forget your place", \ diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 0700aeb799..ca09fc21d5 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -168,6 +168,28 @@ M.adjustOxyLoss(0.5*REM, 0) ..() . = 1 + +/datum/reagent/toxin/ghoulpowder + name = "Ghoul Powder" + id = "ghoulpowder" + description = "A strong neurotoxin that slows metabolism to a death-like state, while keeping the patient fully active. Causes toxin buildup if used too long." + reagent_state = SOLID + color = "#664700" // rgb: 102, 71, 0 + toxpwr = 0.8 + taste_description = "death" + +/datum/reagent/toxin/ghoulpowder/on_mob_add(mob/living/L) + ..() + L.add_trait(TRAIT_FAKEDEATH, id) + +/datum/reagent/toxin/ghoulpowder/on_mob_delete(mob/living/L) + L.remove_trait(TRAIT_FAKEDEATH, id) + ..() + +/datum/reagent/toxin/ghoulpowder/on_mob_life(mob/living/carbon/M) + M.adjustOxyLoss(1*REM, 0) + ..() + . = 1 /datum/reagent/toxin/mindbreaker name = "Mindbreaker Toxin" diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 8b8c009a43..2bb8990eb8 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -116,6 +116,31 @@ empulse(location, round(created_volume / 12), round(created_volume / 7), 1) holder.clear_reagents() + +/datum/chemical_reaction/beesplosion + name = "Bee Explosion" + id = "beesplosion" + required_reagents = list("honey" = 1, "strange_reagent" = 1, "radium" = 1) + +/datum/chemical_reaction/beesplosion/on_reaction(datum/reagents/holder, created_volume) + var/location = holder.my_atom.drop_location() + if(created_volume < 5) + playsound(location,'sound/effects/sparks1.ogg', 100, TRUE) + else + playsound(location,'sound/creatures/bee.ogg', 100, TRUE) + var/list/beeagents = list() + for(var/X in holder.reagent_list) + var/datum/reagent/R = X + if(required_reagents[R.id]) + continue + beeagents += R + var/bee_amount = round(created_volume * 0.2) + for(var/i in 1 to bee_amount) + var/mob/living/simple_animal/hostile/poison/bees/short/new_bee = new(location) + if(LAZYLEN(beeagents)) + new_bee.assign_reagent(pick(beeagents)) + + /datum/chemical_reaction/stabilizing_agent name = "stabilizing_agent" id = "stabilizing_agent" diff --git a/code/modules/reagents/chemistry/recipes/toxins.dm b/code/modules/reagents/chemistry/recipes/toxins.dm index ee31fb1a93..22e21b1db0 100644 --- a/code/modules/reagents/chemistry/recipes/toxins.dm +++ b/code/modules/reagents/chemistry/recipes/toxins.dm @@ -74,6 +74,12 @@ id = "zombiepowder" results = list("zombiepowder" = 2) required_reagents = list("carpotoxin" = 5, "morphine" = 5, "copper" = 5) + +/datum/chemical_reaction/ghoulpowder + name = "Ghoul Powder" + id = "ghoulpowder" + results = list("ghoulpowder" = 2) + required_reagents = list("zombiepowder" = 1, "epinephrine" = 1) /datum/chemical_reaction/mindbreaker name = "Mindbreaker Toxin" diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index 4d737657f8..66befb1bb6 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -302,3 +302,105 @@ name = "BVAK bottle" desc = "A small bottle containing Bio Virus Antidote Kit." list_reagents = list("atropine" = 5, "epinephrine" = 5, "salbutamol" = 10, "spaceacillin" = 10) + +//Oldstation.dmm chemical storage bottles + +/obj/item/reagent_containers/glass/bottle/hydrogen + name = "hydrogen bottle" + list_reagents = list("hydrogen" = 30) + +/obj/item/reagent_containers/glass/bottle/lithium + name = "lithium bottle" + list_reagents = list("lithium" = 30) + +/obj/item/reagent_containers/glass/bottle/carbon + name = "carbon bottle" + list_reagents = list("carbon" = 30) + +/obj/item/reagent_containers/glass/bottle/nitrogen + name = "nitrogen bottle" + list_reagents = list("nitrogen" = 30) + +/obj/item/reagent_containers/glass/bottle/oxygen + name = "oxygen bottle" + list_reagents = list("oxygen" = 30) + +/obj/item/reagent_containers/glass/bottle/fluorine + name = "fluorine bottle" + list_reagents = list("fluorine" = 30) + +/obj/item/reagent_containers/glass/bottle/sodium + name = "sodium bottle" + list_reagents = list("sodium" = 30) + +/obj/item/reagent_containers/glass/bottle/aluminium + name = "aluminium bottle" + list_reagents = list("aluminium" = 30) + +/obj/item/reagent_containers/glass/bottle/silicon + name = "silicon bottle" + list_reagents = list("silicon" = 30) + +/obj/item/reagent_containers/glass/bottle/phosphorus + name = "phosphorus bottle" + list_reagents = list("phosphorus" = 30) + +/obj/item/reagent_containers/glass/bottle/sulfur + name = "sulfur bottle" + list_reagents = list("sulfur" = 30) + +/obj/item/reagent_containers/glass/bottle/chlorine + name = "chlorine bottle" + list_reagents = list("chlorine" = 30) + +/obj/item/reagent_containers/glass/bottle/potassium + name = "potassium bottle" + list_reagents = list("potassium" = 30) + +/obj/item/reagent_containers/glass/bottle/iron + name = "iron bottle" + list_reagents = list("iron" = 30) + +/obj/item/reagent_containers/glass/bottle/copper + name = "copper bottle" + list_reagents = list("copper" = 30) + +/obj/item/reagent_containers/glass/bottle/mercury + name = "mercury bottle" + list_reagents = list("mercury" = 30) + +/obj/item/reagent_containers/glass/bottle/radium + name = "radium bottle" + list_reagents = list("radium" = 30) + +/obj/item/reagent_containers/glass/bottle/water + name = "water bottle" + list_reagents = list("water" = 30) + +/obj/item/reagent_containers/glass/bottle/ethanol + name = "ethanol bottle" + list_reagents = list("ethanol" = 30) + +/obj/item/reagent_containers/glass/bottle/sugar + name = "sugar bottle" + list_reagents = list("sugar" = 30) + +/obj/item/reagent_containers/glass/bottle/sacid + name = "sulphuric acid bottle" + list_reagents = list("sacid" = 30) + +/obj/item/reagent_containers/glass/bottle/welding_fuel + name = "welding fuel bottle" + list_reagents = list("welding_fuel" = 30) + +/obj/item/reagent_containers/glass/bottle/silver + name = "silver bottle" + list_reagents = list("silver" = 30) + +/obj/item/reagent_containers/glass/bottle/iodine + name = "iodine bottle" + list_reagents = list("iodine" = 30) + +/obj/item/reagent_containers/glass/bottle/bromine + name = "bromine bottle" + list_reagents = list("bromine" = 30) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 8da31a7ba1..3b97888904 100755 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -331,103 +331,3 @@ /obj/item/reagent_containers/glass/beaker/waterbottle/large/empty list_reagents = list() - -/obj/item/reagent_containers/glass/beaker/large/hydrogen - name = "hydrogen beaker" - list_reagents = list("hydrogen" = 50) - -/obj/item/reagent_containers/glass/beaker/large/lithium - name = "lithium beaker" - list_reagents = list("lithium" = 50) - -/obj/item/reagent_containers/glass/beaker/large/carbon - name = "carbon beaker" - list_reagents = list("carbon" = 50) - -/obj/item/reagent_containers/glass/beaker/large/nitrogen - name = "nitrogen beaker" - list_reagents = list("nitrogen" = 50) - -/obj/item/reagent_containers/glass/beaker/large/oxygen - name = "oxygen beaker" - list_reagents = list("oxygen" = 50) - -/obj/item/reagent_containers/glass/beaker/large/fluorine - name = "fluorine beaker" - list_reagents = list("fluorine" = 50) - -/obj/item/reagent_containers/glass/beaker/large/sodium - name = "sodium beaker" - list_reagents = list("sodium" = 50) - -/obj/item/reagent_containers/glass/beaker/large/aluminium - name = "aluminium beaker" - list_reagents = list("aluminium" = 50) - -/obj/item/reagent_containers/glass/beaker/large/silicon - name = "silicon beaker" - list_reagents = list("silicon" = 50) - -/obj/item/reagent_containers/glass/beaker/large/phosphorus - name = "phosphorus beaker" - list_reagents = list("phosphorus" = 50) - -/obj/item/reagent_containers/glass/beaker/large/sulfur - name = "sulfur beaker" - list_reagents = list("sulfur" = 50) - -/obj/item/reagent_containers/glass/beaker/large/chlorine - name = "chlorine beaker" - list_reagents = list("chlorine" = 50) - -/obj/item/reagent_containers/glass/beaker/large/potassium - name = "potassium beaker" - list_reagents = list("potassium" = 50) - -/obj/item/reagent_containers/glass/beaker/large/iron - name = "iron beaker" - list_reagents = list("iron" = 50) - -/obj/item/reagent_containers/glass/beaker/large/copper - name = "copper beaker" - list_reagents = list("copper" = 50) - -/obj/item/reagent_containers/glass/beaker/large/mercury - name = "mercury beaker" - list_reagents = list("mercury" = 50) - -/obj/item/reagent_containers/glass/beaker/large/radium - name = "radium beaker" - list_reagents = list("radium" = 50) - -/obj/item/reagent_containers/glass/beaker/large/water - name = "water beaker" - list_reagents = list("water" = 50) - -/obj/item/reagent_containers/glass/beaker/large/ethanol - name = "ethanol beaker" - list_reagents = list("ethanol" = 50) - -/obj/item/reagent_containers/glass/beaker/large/sugar - name = "sugar beaker" - list_reagents = list("sugar" = 50) - -/obj/item/reagent_containers/glass/beaker/large/sacid - name = "sulphuric acid beaker" - list_reagents = list("sacid" = 50) - -/obj/item/reagent_containers/glass/beaker/large/welding_fuel - name = "welding fuel beaker" - list_reagents = list("welding_fuel" = 50) - -/obj/item/reagent_containers/glass/beaker/large/silver - name = "silver beaker" - list_reagents = list("silver" = 50) - -/obj/item/reagent_containers/glass/beaker/large/iodine - name = "iodine beaker" - list_reagents = list("iodine" = 50) - -/obj/item/reagent_containers/glass/beaker/large/bromine - name = "bromine beaker" - list_reagents = list("bromine" = 50) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 0ba781d962..1092e63376 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -143,7 +143,7 @@ if(L != user) add_logs(user, L, "injected", src, addition="which had [contained]") else - log_attack("[user.name] ([user.ckey]) injected [L.name] ([L.ckey]) with [src.name], which had [contained] (INTENT: [uppertext(user.a_intent)])") + log_attack("[key_name(user)] injected [key_name(L)] with [src.name], which had [contained] (INTENT: [uppertext(user.a_intent)])") L.log_message("Injected themselves ([contained]) with [src.name].", INDIVIDUAL_ATTACK_LOG) var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1) diff --git a/code/modules/research/designs/AI_module_designs.dm b/code/modules/research/designs/AI_module_designs.dm index eb92bb3737..6e6bd740bb 100644 --- a/code/modules/research/designs/AI_module_designs.dm +++ b/code/modules/research/designs/AI_module_designs.dm @@ -14,7 +14,7 @@ name = "Module Design (Safeguard)" desc = "Allows for the construction of a Safeguard AI Module." id = "safeguard_module" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 100) + materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) build_path = /obj/item/aiModule/supplied/safeguard category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -23,7 +23,7 @@ name = "Module Design (OneHuman)" desc = "Allows for the construction of a OneHuman AI Module." id = "onehuman_module" - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100) + materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 6000) build_path = /obj/item/aiModule/zeroth/oneHuman category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -32,7 +32,7 @@ name = "Module Design (ProtectStation)" desc = "Allows for the construction of a ProtectStation AI Module." id = "protectstation_module" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 100) + materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) build_path = /obj/item/aiModule/supplied/protectStation category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -41,7 +41,7 @@ name = "Module Design (Quarantine)" desc = "Allows for the construction of a Quarantine AI Module." id = "quarantine_module" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 100) + materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) build_path = /obj/item/aiModule/supplied/quarantine category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -50,7 +50,7 @@ name = "Module Design (OxygenIsToxicToHumans)" desc = "Allows for the construction of a Safeguard AI Module." id = "oxygen_module" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 100) + materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) build_path = /obj/item/aiModule/supplied/oxygen category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -59,7 +59,7 @@ name = "Module Design (Freeform)" desc = "Allows for the construction of a Freeform AI Module." id = "freeform_module" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 100) + materials = list(MAT_GLASS = 1000, MAT_GOLD = 10000)//Custom inputs should be more expensive to get build_path = /obj/item/aiModule/supplied/freeform category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -68,7 +68,7 @@ name = "Module Design (Reset)" desc = "Allows for the construction of a Reset AI Module." id = "reset_module" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 100) + materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) build_path = /obj/item/aiModule/reset category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -77,7 +77,7 @@ name = "Module Design (Purge)" desc = "Allows for the construction of a Purge AI Module." id = "purge_module" - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100) + materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000) build_path = /obj/item/aiModule/reset/purge category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -86,7 +86,7 @@ name = "Module Design (Law Removal)" desc = "Allows for the construction of a Law Removal AI Core Module." id = "remove_module" - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100) + materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000) build_path = /obj/item/aiModule/remove category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -95,7 +95,7 @@ name = "AI Core Module (Freeform)" desc = "Allows for the construction of a Freeform AI Core Module." id = "freeformcore_module" - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100) + materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 10000)//Ditto build_path = /obj/item/aiModule/core/freeformcore category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -104,7 +104,7 @@ name = "Core Module Design (Asimov)" desc = "Allows for the construction of an Asimov AI Core Module." id = "asimov_module" - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100) + materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000) build_path = /obj/item/aiModule/core/full/asimov category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -114,7 +114,7 @@ desc = "Allows for the construction of a P.A.L.A.D.I.N. AI Core Module." id = "paladin_module" build_type = IMPRINTER - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100) + materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000) build_path = /obj/item/aiModule/core/full/paladin category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -123,7 +123,7 @@ name = "Core Module Design (T.Y.R.A.N.T.)" desc = "Allows for the construction of a T.Y.R.A.N.T. AI Module." id = "tyrant_module" - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100) + materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000) build_path = /obj/item/aiModule/core/full/tyrant category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -132,7 +132,7 @@ name = "Core Module Design (Corporate)" desc = "Allows for the construction of a Corporate AI Core Module." id = "corporate_module" - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100) + materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000) build_path = /obj/item/aiModule/core/full/corp category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -141,7 +141,7 @@ name = "Core Module Design (Default)" desc = "Allows for the construction of a Default AI Core Module." id = "default_module" - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100) + materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000) build_path = /obj/item/aiModule/core/full/custom category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 0a36394bc9..2050e96f5e 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -34,6 +34,14 @@ build_path = /obj/item/extinguisher category = list("initial","Tools") +/datum/design/pocketfireextinguisher + name = "Pocket Fire Extinguisher" + id = "pocketfireextinguisher" + build_type = AUTOLATHE + materials = list(MAT_METAL = 50, MAT_GLASS = 40) + build_path = /obj/item/extinguisher/mini + category = list("initial","Tools") + /datum/design/multitool name = "Multitool" id = "multitool" @@ -229,10 +237,10 @@ /datum/design/rglass name = "Reinforced Glass" id = "rglass" - build_type = AUTOLATHE | SMELTER + build_type = AUTOLATHE | SMELTER | PROTOLATHE materials = list(MAT_METAL = 1000, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/rglass - category = list("initial","Construction") + category = list("initial","Construction","Stock Parts") maxstack = 50 /datum/design/rods diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index 0522166f72..6bb1debb43 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -50,6 +50,7 @@ name = "Computer Design (AI Upload)" desc = "Allows for the construction of circuit boards used to build an AI Upload Console." id = "aiupload" + materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) build_path = /obj/item/circuitboard/computer/aiupload category = list("Computer Boards") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -58,6 +59,7 @@ name = "Computer Design (Cyborg Upload)" desc = "Allows for the construction of circuit boards used to build a Cyborg Upload Console." id = "borgupload" + materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) build_path = /obj/item/circuitboard/computer/borgupload category = list("Computer Boards") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 89f1eb85b9..02b16a7700 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -398,7 +398,7 @@ name = "Machine Design (Weapon Recharger Board)" desc = "The circuit board for a Weapon Recharger." id = "recharger" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 100) + materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) build_path = /obj/item/circuitboard/machine/recharger category = list("Misc. Machinery") departmental_flags = DEPARTMENTAL_FLAG_ALL @@ -475,6 +475,14 @@ category = list("Medical Machinery") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +/datum/design/board/harvester + name = "Machine Design (Organ Harvester Board)" + desc = "The circuit board for an organ harvester." + id = "harvester" + build_path = /obj/item/circuitboard/machine/harvester + category = list("Medical Machinery") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + /datum/design/board/deepfryer name = "Machine Design (Deep Fryer)" desc = "The circuit board for a Deep Fryer." @@ -521,4 +529,4 @@ id = "stack_machine" build_path = /obj/item/circuitboard/machine/stacking_machine category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_ENGINEERING \ No newline at end of file + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_ENGINEERING diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index f51345e7f3..4eb2589bf3 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -210,7 +210,7 @@ materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - + /datum/design/healthanalyzer_advanced name = "advanced health analyzer" desc = "A hand-held body scanner able to distinguish vital signs of the subject with high accuracy." @@ -220,7 +220,7 @@ materials = list(MAT_METAL = 5000, MAT_GLASS = 2500, MAT_SILVER = 2000, MAT_GOLD = 1500) category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - + ///////////////////////////////////////// //////////Cybernetic Implants//////////// ///////////////////////////////////////// @@ -595,3 +595,13 @@ build_path = /obj/item/disk/surgery/necrotic_revival category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/holobarrier_med + name = "PENLITE holobarrier projector" + desc = "PENLITE holobarriers, a device that halts individuals with malicious diseases." + build_type = PROTOLATHE + build_path = /obj/item/holosign_creator/medical + materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 100) //a hint of silver since it can troll 2 antags (bad viros and sentient disease) + id = "holobarrier_med" + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL \ No newline at end of file diff --git a/code/modules/research/designs/smelting_designs.dm b/code/modules/research/designs/smelting_designs.dm index 79a9748b08..f2f21396d2 100644 --- a/code/modules/research/designs/smelting_designs.dm +++ b/code/modules/research/designs/smelting_designs.dm @@ -3,51 +3,63 @@ /datum/design/plasteel_alloy name = "Plasma + Iron alloy" id = "plasteel" - build_type = SMELTER + build_type = SMELTER | PROTOLATHE materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT, MAT_PLASMA = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/plasteel - category = list("initial") + category = list("initial", "Stock Parts") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + maxstack = 50 /datum/design/plastitanium_alloy name = "Plasma + Titanium alloy" id = "plastitanium" - build_type = SMELTER + build_type = SMELTER | PROTOLATHE materials = list(MAT_TITANIUM = MINERAL_MATERIAL_AMOUNT, MAT_PLASMA = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/mineral/plastitanium - category = list("initial") + category = list("initial", "Stock Parts") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + maxstack = 50 /datum/design/plaglass_alloy name = "Plasma + Glass alloy" id = "plasmaglass" - build_type = SMELTER + build_type = SMELTER | PROTOLATHE materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/plasmaglass - category = list("initial") + category = list("initial", "Stock Parts") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + maxstack = 50 /datum/design/plasmarglass_alloy name = "Plasma + Metal + Glass alloy" id = "plasmareinforcedglass" - build_type = SMELTER + build_type = SMELTER | PROTOLATHE materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_METAL = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/plasmarglass - category = list("initial") + category = list("initial", "Stock Parts") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + maxstack = 50 /datum/design/titaniumglass_alloy name = "Titanium + Glass alloy" id = "titaniumglass" - build_type = SMELTER + build_type = SMELTER | PROTOLATHE materials = list(MAT_TITANIUM = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/titaniumglass - category = list("initial") + category = list("initial", "Stock Parts") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + maxstack = 50 /datum/design/plastitaniumglass_alloy name = "Plasma + Titanium + Glass alloy" id = "plastitaniumglass" - build_type = SMELTER + build_type = SMELTER | PROTOLATHE materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_TITANIUM = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/plastitaniumglass - category = list("initial") + category = list("initial", "Stock Parts") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + maxstack = 50 /datum/design/alienalloy name = "Alien Alloy" diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index e62b0808b6..5cc26381dd 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -59,11 +59,14 @@ Note: Must be placed within 3 tiles of the R&D Console /obj/machinery/rnd/destructive_analyzer/proc/reclaim_materials_from(obj/item/thing) . = 0 - if(linked_console && linked_console.linked_lathe) //Also sends salvaged materials to a linked protolathe, if any. + var/datum/component/material_container/storage = linked_console?.linked_lathe?.materials.mat_container + if(storage) //Also sends salvaged materials to a linked protolathe, if any. for(var/material in thing.materials) - var/can_insert = min((linked_console.linked_lathe.materials.max_amount - linked_console.linked_lathe.materials.total_amount), (max(thing.materials[material]*(decon_mod/10), thing.materials[material]))) - linked_console.linked_lathe.materials.insert_amount(can_insert, material) + var/can_insert = min((storage.max_amount - storage.total_amount), (max(thing.materials[material]*(decon_mod/10), thing.materials[material]))) + storage.insert_amount(can_insert, material) . += can_insert + if (.) + linked_console.linked_lathe.materials.silo_log(src, "reclaimed", 1, "[thing.name]", thing.materials) /obj/machinery/rnd/destructive_analyzer/proc/destroy_item(obj/item/thing, innermode = FALSE) if(QDELETED(thing) || QDELETED(src) || QDELETED(linked_console)) diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index ccd9872b46..ebd386513e 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -583,7 +583,7 @@ /obj/item/relic/proc/corgicannon(mob/user) playsound(src, "sparks", rand(25,50), 1) var/mob/living/simple_animal/pet/dog/corgi/C = new/mob/living/simple_animal/pet/dog/corgi(get_turf(user)) - C.throw_at(pick(oview(10,user)), 10, rand(3,8), callback = CALLBACK(src, .throwSmoke, C)) + C.throw_at(pick(oview(10,user)), 10, rand(3,8), callback = CALLBACK(src, .proc/throwSmoke, C)) warn_admins(user, "Corgi Cannon", 0) /obj/item/relic/proc/clean(mob/user) diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index 75ed53e936..d3cd399635 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -6,7 +6,7 @@ var/consoleless_interface = FALSE //Whether it can be used without a console. var/efficiency_coeff = 1 //Materials needed / coeff = actual. var/list/categories = list() - var/datum/component/material_container/materials //Store for hyper speed! + var/datum/component/remote_materials/materials var/allowed_department_flags = ALL var/production_animation //What's flick()'d on print. var/allowed_buildtypes = NONE @@ -19,19 +19,16 @@ var/screen = RESEARCH_FABRICATOR_SCREEN_MAIN var/selected_category -/obj/machinery/rnd/production/Initialize() +/obj/machinery/rnd/production/Initialize(mapload) . = ..() create_reagents(0) - materials = AddComponent(/datum/component/material_container, - list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLASTIC), 0, - TRUE, list(/obj/item/stack), CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert)) - materials.precise_insertion = TRUE - RefreshParts() matching_designs = list() cached_designs = list() stored_research = new host_research = SSresearch.science_tech update_research() + materials = AddComponent(/datum/component/remote_materials, "lathe", mapload) + RefreshParts() /obj/machinery/rnd/production/proc/update_research() host_research.copy_research_to(stored_research, TRUE) @@ -47,9 +44,6 @@ /obj/machinery/rnd/production/RefreshParts() calculate_efficiency() -/obj/machinery/rnd/production/attack_hand(mob/user) - interact(user) //remove this snowflake shit when the refactor of storage components or some other pr that unsnowflakes attack_hand on machinery is in - /obj/machinery/rnd/production/ui_interact(mob/user) if(!consoleless_interface) return ..() @@ -70,9 +64,10 @@ reagents.maximum_volume += G.volume G.reagents.trans_to(src, G.reagents.total_volume) if(materials) - materials.max_amount = 0 + var/total_storage = 0 for(var/obj/item/stock_parts/matter_bin/M in component_parts) - materials.max_amount += M.rating * 75000 + total_storage += M.rating * 75000 + materials.set_local_size(total_storage) var/total_rating = 0 for(var/obj/item/stock_parts/manipulator/M in component_parts) total_rating += M.rating @@ -83,7 +78,6 @@ /obj/machinery/rnd/production/on_deconstruction() for(var/obj/item/reagent_containers/glass/G in component_parts) reagents.trans_to(G, G.reagents.maximum_volume) - materials.retrieve_all() return ..() /obj/machinery/rnd/production/proc/do_print(path, amount, list/matlist, notify_admins) @@ -92,18 +86,26 @@ message_admins("[ADMIN_LOOKUPFLW(usr)] has built [amount] of [path] at a [src]([type]).") for(var/i in 1 to amount) var/obj/item/I = new path(get_turf(src)) - if(!istype(I, /obj/item/stack/sheet) && !istype(I, /obj/item/stack/ore/bluespace_crystal)) + if(efficient_with(I.type)) I.materials = matlist.Copy() SSblackbox.record_feedback("nested tally", "item_printed", amount, list("[type]", "[path]")) /obj/machinery/rnd/production/proc/check_mat(datum/design/being_built, M) // now returns how many times the item can be built with the material + if (!materials.mat_container) // no connected silo + return 0 var/list/all_materials = being_built.reagents_list + being_built.materials - var/A = materials.amount(M) + var/A = materials.mat_container.amount(M) if(!A) A = reagents.get_reagent_amount(M) - return round(A / max(1, (all_materials[M]/efficiency_coeff))) + // these types don't have their .materials set in do_print, so don't allow + // them to be constructed efficiently + var/ef = efficient_with(being_built.build_path) ? efficiency_coeff : 1 + return round(A / max(1, all_materials[M] / ef)) + +/obj/machinery/rnd/production/proc/efficient_with(path) + return !ispath(path, /obj/item/stack/sheet) && !ispath(path, /obj/item/stack/ore/bluespace_crystal) /obj/machinery/rnd/production/proc/user_try_print_id(id, amount) if((!istype(linked_console) && requires_console) || !id) @@ -121,25 +123,33 @@ if(D.build_type && !(D.build_type & allowed_buildtypes)) say("This machine does not have the necessary manipulation systems for this design. Please contact Nanotrasen Support!") return FALSE + if(!materials.mat_container) + say("No connection to material storage, please contact the quartermaster.") + return FALSE + if(materials.on_hold()) + say("Mineral access is on hold, please contact the quartermaster.") + return FALSE var/power = 1000 amount = CLAMP(amount, 1, 50) for(var/M in D.materials) power += round(D.materials[M] * amount / 35) power = min(3000, power) use_power(power) + var/coeff = efficient_with(D.build_path) ? efficiency_coeff : 1 var/list/efficient_mats = list() for(var/MAT in D.materials) - efficient_mats[MAT] = D.materials[MAT]/efficiency_coeff - if(!materials.has_materials(efficient_mats, amount)) + efficient_mats[MAT] = D.materials[MAT]/coeff + if(!materials.mat_container.has_materials(efficient_mats, amount)) say("Not enough materials to complete prototype[amount > 1? "s" : ""].") return FALSE for(var/R in D.reagents_list) - if(!reagents.has_reagent(R, D.reagents_list[R]*amount/efficiency_coeff)) + if(!reagents.has_reagent(R, D.reagents_list[R]*amount/coeff)) say("Not enough reagents to complete prototype[amount > 1? "s" : ""].") return FALSE - materials.use_amount(efficient_mats, amount) + materials.mat_container.use_amount(efficient_mats, amount) + materials.silo_log(src, "built", -amount, "[D.name]", efficient_mats) for(var/R in D.reagents_list) - reagents.remove_reagent(R, D.reagents_list[R]*amount/efficiency_coeff) + reagents.remove_reagent(R, D.reagents_list[R]*amount/coeff) busy = TRUE if(production_animation) flick(production_animation, src) @@ -181,17 +191,23 @@ var/list/l = list() l += "
    [host_research.organization] [department_tag] Department Lathe" l += "Security protocols: [(obj_flags & EMAGGED)? "Disabled" : "Enabled"]" - l += "Material Amount: [materials.total_amount] / [materials.max_amount]" + if (materials.mat_container) + l += "Material Amount: [materials.format_amount()]" + else + l += "No material storage connected, please contact the quartermaster." l += "Chemical volume: [reagents.total_volume] / [reagents.maximum_volume]" l += "Synchronize Research" l += "Main Screen
    [RDSCREEN_NOBREAK]" return l /obj/machinery/rnd/production/proc/ui_screen_materials() + if (!materials.mat_container) + screen = RESEARCH_FABRICATOR_SCREEN_MAIN + return ui_screen_main() var/list/l = list() l += "

    Material Storage:

    " - for(var/mat_id in materials.materials) - var/datum/material/M = materials.materials[mat_id] + for(var/mat_id in materials.mat_container.materials) + var/datum/material/M = materials.mat_container.materials[mat_id] l += "* [M.amount] of [M.name]: " if(M.amount >= MINERAL_MATERIAL_AMOUNT) l += "Eject [RDSCREEN_NOBREAK]" if(M.amount >= MINERAL_MATERIAL_AMOUNT*5) l += "5x [RDSCREEN_NOBREAK]" @@ -230,6 +246,8 @@ return if(!coeff) coeff = efficiency_coeff + if(!efficient_with(D.build_path)) + coeff = 1 var/list/l = list() var/temp_material var/c = 50 @@ -281,9 +299,23 @@ if(ls["disposeall"]) //Causes the protolathe to dispose of all it's reagents. reagents.clear_reagents() if(ls["ejectsheet"]) //Causes the protolathe to eject a sheet of material - materials.retrieve_sheets(text2num(ls["eject_amt"]), ls["ejectsheet"]) + eject_sheets(ls["ejectsheet"], ls["eject_amt"]) updateUsrDialog() +/obj/machinery/rnd/production/proc/eject_sheets(eject_sheet, eject_amt) + var/datum/component/material_container/mat_container = materials.mat_container + if (!mat_container) + say("No access to material storage, please contact the quartermaster.") + return 0 + if (materials.on_hold()) + say("Mineral access is on hold, please contact the quartermaster.") + return 0 + var/count = mat_container.retrieve_sheets(text2num(eject_amt), eject_sheet, drop_location()) + var/list/matlist = list() + matlist[eject_sheet] = MINERAL_MATERIAL_AMOUNT + materials.silo_log(src, "ejected", -count, "sheets", matlist) + return count + /obj/machinery/rnd/production/proc/ui_screen_main() var/list/l = list() l += "\ diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 0ba9312314..fb3c5908f5 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -197,6 +197,11 @@ Nothing else in the console has ID requirements. locked = FALSE return ..() +/obj/machinery/computer/rdconsole/multitool_act(mob/user, obj/item/multitool/I) + var/lathe = linked_lathe && linked_lathe.multitool_act(user, I) + var/print = linked_imprinter && linked_imprinter.multitool_act(user, I) + return lathe || print + /obj/machinery/computer/rdconsole/proc/list_categories(list/categories, menu_num as num) if(!categories) return @@ -268,7 +273,10 @@ Nothing else in the console has ID requirements. /obj/machinery/computer/rdconsole/proc/ui_protolathe_header() var/list/l = list() l += "" return l @@ -277,7 +285,6 @@ Nothing else in the console has ID requirements. var/list/l = list() l += ui_protolathe_header() l += "

    Browsing [selected_category]:

    " - var/coeff = linked_lathe.efficiency_coeff for(var/v in stored_research.researched_designs) var/datum/design/D = stored_research.researched_designs[v] if(!(selected_category in D.category)|| !(D.build_type & PROTOLATHE)) @@ -286,11 +293,13 @@ Nothing else in the console has ID requirements. continue var/temp_material var/c = 50 - var/t + var/coeff = linked_lathe.efficiency_coeff + if(!linked_lathe.efficient_with(D.build_path)) + coeff = 1 var/all_materials = D.materials + D.reagents_list for(var/M in all_materials) - t = linked_lathe.check_mat(D, M) + var/t = linked_lathe.check_mat(D, M) temp_material += " | " if (t < 1) temp_material += "[all_materials[M]/coeff] [CallMaterialName(M)]" @@ -332,16 +341,17 @@ Nothing else in the console has ID requirements. RDSCREEN_UI_LATHE_CHECK var/list/l = list() l += ui_protolathe_header() - var/coeff = linked_lathe.efficiency_coeff for(var/datum/design/D in matching_designs) if(!(isnull(linked_lathe.allowed_department_flags) || (D.departmental_flags & linked_lathe.allowed_department_flags))) continue var/temp_material var/c = 50 - var/t var/all_materials = D.materials + D.reagents_list + var/coeff = linked_lathe.efficiency_coeff + if(!linked_lathe.efficient_with(D.build_path)) + coeff = 1 for(var/M in all_materials) - t = linked_lathe.check_mat(D, M) + var/t = linked_lathe.check_mat(D, M) temp_material += " | " if (t < 1) temp_material += "[all_materials[M]/coeff] [CallMaterialName(M)]" @@ -364,11 +374,15 @@ Nothing else in the console has ID requirements. /obj/machinery/computer/rdconsole/proc/ui_protolathe_materials() //Legacy code RDSCREEN_UI_LATHE_CHECK + var/datum/component/material_container/mat_container = linked_lathe.materials.mat_container + if (!mat_container) + screen = RDSCREEN_PROTOLATHE + return ui_protolathe() var/list/l = list() l += ui_protolathe_header() l += "

    Material Storage:

    " - for(var/mat_id in linked_lathe.materials.materials) - var/datum/material/M = linked_lathe.materials.materials[mat_id] + for(var/mat_id in mat_container.materials) + var/datum/material/M = mat_container.materials[mat_id] l += "* [M.amount] of [M.name]: " if(M.amount >= MINERAL_MATERIAL_AMOUNT) l += "Eject [RDSCREEN_NOBREAK]" if(M.amount >= MINERAL_MATERIAL_AMOUNT*5) l += "5x [RDSCREEN_NOBREAK]" @@ -392,7 +406,10 @@ Nothing else in the console has ID requirements. /obj/machinery/computer/rdconsole/proc/ui_circuit_header() //Legacy Code var/list/l = list() l += "" return l @@ -419,7 +436,6 @@ Nothing else in the console has ID requirements. l += ui_circuit_header() l += "

    Browsing [selected_category]:

    " - var/coeff = linked_imprinter.efficiency_coeff for(var/v in stored_research.researched_designs) var/datum/design/D = stored_research.researched_designs[v] if(!(selected_category in D.category) || !(D.build_type & IMPRINTER)) @@ -430,6 +446,9 @@ Nothing else in the console has ID requirements. var/check_materials = TRUE var/all_materials = D.materials + D.reagents_list + var/coeff = linked_imprinter.efficiency_coeff + if(!linked_imprinter.efficient_with(D.build_path)) + coeff = 1 for(var/M in all_materials) temp_materials += " | " @@ -451,13 +470,15 @@ Nothing else in the console has ID requirements. l += ui_circuit_header() l += "

    Search results:

    " - var/coeff = linked_imprinter.efficiency_coeff for(var/datum/design/D in matching_designs) if(!(isnull(linked_imprinter.allowed_department_flags) || (D.departmental_flags & linked_imprinter.allowed_department_flags))) continue var/temp_materials var/check_materials = TRUE var/all_materials = D.materials + D.reagents_list + var/coeff = linked_imprinter.efficiency_coeff + if(!linked_imprinter.efficient_with(D.build_path)) + coeff = 1 for(var/M in all_materials) temp_materials += " | " if (!linked_imprinter.check_mat(D, M)) @@ -485,11 +506,15 @@ Nothing else in the console has ID requirements. /obj/machinery/computer/rdconsole/proc/ui_circuit_materials() //Legacy code! RDSCREEN_UI_IMPRINTER_CHECK + var/datum/component/material_container/mat_container = linked_imprinter.materials.mat_container + if (!mat_container) + screen = RDSCREEN_IMPRINTER + return ui_circuit() var/list/l = list() l += ui_circuit_header() l += "

    Material Storage:

    " - for(var/mat_id in linked_imprinter.materials.materials) - var/datum/material/M = linked_imprinter.materials.materials[mat_id] + for(var/mat_id in mat_container.materials) + var/datum/material/M = mat_container.materials[mat_id] l += "* [M.amount] of [M.name]: " if(M.amount >= MINERAL_MATERIAL_AMOUNT) l += "Eject [RDSCREEN_NOBREAK]" if(M.amount >= MINERAL_MATERIAL_AMOUNT*5) l += "5x [RDSCREEN_NOBREAK]" @@ -906,7 +931,10 @@ Nothing else in the console has ID requirements. if(QDELETED(linked_lathe)) say("No Protolathe Linked!") return - linked_lathe.materials.retrieve_sheets(text2num(ls["eject_amt"]), ls["ejectsheet"]) + if(!linked_lathe.materials.mat_container) + say("No material storage linked to protolathe!") + return + linked_lathe.eject_sheets(ls["ejectsheet"], ls["eject_amt"]) //Circuit Imprinter Materials if(ls["disposeI"]) //Causes the circuit imprinter to dispose of a single reagent (all of it) if(QDELETED(linked_imprinter)) @@ -922,7 +950,10 @@ Nothing else in the console has ID requirements. if(QDELETED(linked_imprinter)) say("No Circuit Imprinter Linked!") return - linked_imprinter.materials.retrieve_sheets(text2num(ls["eject_amt"]), ls["imprinter_ejectsheet"]) + if(!linked_imprinter.materials.mat_container) + say("No material storage linked to circuit imprinter!") + return + linked_imprinter.eject_sheets(ls["imprinter_ejectsheet"], ls["eject_amt"]) if(ls["disk_slot"]) disk_slot_selected = text2num(ls["disk_slot"]) if(ls["research_node"]) diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm index 7c23609c21..f11b0ad709 100644 --- a/code/modules/research/techweb/_techweb.dm +++ b/code/modules/research/techweb/_techweb.dm @@ -355,5 +355,4 @@ allowed_buildtypes = SMELTER /datum/techweb/specialized/autounlocking/exofab - node_autounlock_ids = list("robotics", "mmi", "cyborg", "mecha_odysseus", "mech_gygax", "mech_durand", "mecha_phazon", "mecha", "mech_tools", "clown") allowed_buildtypes = MECHFAB diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index d4cc38e050..b796f42d61 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -1,16 +1,47 @@ //Current rate: 132500 research points in 90 minutes -//Base Node +//Base Nodes /datum/techweb_node/base id = "base" starting_node = TRUE display_name = "Basic Research Technology" description = "NT default research technologies." + // Default research tech, prevents bricking design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani", "destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab", - "space_heater", "xlarge_beaker", "sec_rshot", "sec_bshot", "sec_slug", "sec_Islug", "sec_dart", "sec_38") //Default research tech, prevents bricking + "space_heater", "xlarge_beaker", "sec_rshot", "sec_bshot", "sec_slug", "sec_Islug", "sec_dart", "sec_38", + "rglass","plasteel","plastitanium","plasmaglass","plasmareinforcedglass","titaniumglass","plastitaniumglass") +/datum/techweb_node/mmi + id = "mmi" + starting_node = TRUE + display_name = "Man Machine Interface" + description = "A slightly Frankensteinian device that allows human brains to interface natively with software APIs." + design_ids = list("mmi") + +/datum/techweb_node/cyborg + id = "cyborg" + starting_node = TRUE + display_name = "Cyborg Construction" + description = "Sapient robots with preloaded tool modules and programmable laws." + design_ids = list("robocontrol", "sflash", "borg_suit", "borg_head", "borg_chest", "borg_r_arm", "borg_l_arm", "borg_r_leg", "borg_l_leg", "borgupload", + "cyborgrecharger", "borg_upgrade_restart", "borg_upgrade_rename") + +/datum/techweb_node/mech + id = "mecha" + starting_node = TRUE + display_name = "Mechanical Exosuits" + description = "Mechanized exosuits that are several magnitudes stronger and more powerful than the average human." + design_ids = list("mecha_tracking", "mechacontrol", "mechapower", "mech_recharger", "ripley_chassis", "firefighter_chassis", "ripley_torso", "ripley_left_arm", "ripley_right_arm", "ripley_left_leg", "ripley_right_leg", + "ripley_main", "ripley_peri", "mech_hydraulic_clamp") + +/datum/techweb_node/mech_tools + id = "mech_tools" + starting_node = TRUE + display_name = "Basic Exosuit Equipment" + description = "Various tools fit for basic mech units" + design_ids = list("mech_drill", "mech_mscanner", "mech_extinguisher", "mech_cable_layer") /////////////////////////Biotech///////////////////////// /datum/techweb_node/biotech @@ -27,7 +58,7 @@ display_name = "Advanced Biotechnology" description = "Advanced Biotechnology" prereq_ids = list("biotech") - design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "defibrillator", "meta_beaker", "healthanalyzer_advanced") + design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "defibrillator", "meta_beaker", "healthanalyzer_advanced","harvester","holobarrier_med") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -219,39 +250,20 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 -/datum/techweb_node/mmi - id = "mmi" - display_name = "Man Machine Interface" - description = "A slightly Frankensteinian device that allows human brains to interface natively with software APIs." - prereq_ids = list("neural_programming") - design_ids = list("mmi") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - /datum/techweb_node/posibrain id = "posibrain" display_name = "Positronic Brain" description = "Applied usage of neural technology allowing for autonomous AI units based on special metallic cubes with conductive and processing circuits." - prereq_ids = list("neural_programming", "mmi") + prereq_ids = list("neural_programming") design_ids = list("mmi_posi") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 -/datum/techweb_node/cyborg - id = "cyborg" - display_name = "Cyborg Construction" - description = "Sapient robots with preloaded tool modules and programmable laws." - prereq_ids = list("mmi", "robotics") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) - export_price = 5000 - design_ids = list("robocontrol", "sflash", "borg_suit", "borg_head", "borg_chest", "borg_r_arm", "borg_l_arm", "borg_r_leg", "borg_l_leg", "borgupload", - "cyborgrecharger", "borg_upgrade_restart", "borg_upgrade_rename") - /datum/techweb_node/cyborg_upg_util id = "cyborg_upg_util" display_name = "Cyborg Upgrades: Utility" description = "Utility upgrades for cyborgs." - prereq_ids = list("engineering", "cyborg") + prereq_ids = list("engineering") design_ids = list("borg_upgrade_holding", "borg_upgrade_lavaproof", "borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand", "borg_upgrade_rped") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) export_price = 5000 @@ -260,7 +272,7 @@ id = "cyborg_upg_med" display_name = "Cyborg Upgrades: Medical" description = "Medical upgrades for cyborgs." - prereq_ids = list("adv_biotech", "cyborg") + prereq_ids = list("adv_biotech") design_ids = list("borg_upgrade_defibrillator", "borg_upgrade_piercinghypospray", "borg_upgrade_highstrengthsynthesiser", "borg_upgrade_expandedsynthesiser", "borg_upgrade_pinpointer") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) export_price = 5000 @@ -423,7 +435,7 @@ id = "cyber_organs" display_name = "Cybernetic Organs" description = "We have the technology to rebuild him." - prereq_ids = list("adv_biotech", "cyborg") + prereq_ids = list("adv_biotech") design_ids = list("cybernetic_heart", "cybernetic_liver", "cybernetic_liver_u", "cybernetic_lungs") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -432,7 +444,7 @@ id = "cyber_implants" display_name = "Cybernetic Implants" description = "Electronic implants that improve humans." - prereq_ids = list("adv_biotech", "cyborg", "adv_datatheory") + prereq_ids = list("adv_biotech", "adv_datatheory") design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -602,21 +614,11 @@ export_price = 5000 ////////////////////////mech technology//////////////////////// -/datum/techweb_node/mech - id = "mecha" - display_name = "Mechanical Exosuits" - description = "Mechanized exosuits that are several magnitudes stronger and more powerful than the average human." - prereq_ids = list("robotics", "adv_engi") - design_ids = list("mecha_tracking", "mechacontrol", "mechapower", "mech_recharger", "ripley_chassis", "firefighter_chassis", "ripley_torso", "ripley_left_arm", "ripley_right_arm", "ripley_left_leg", "ripley_right_leg", - "ripley_main", "ripley_peri", "mech_hydraulic_clamp") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - /datum/techweb_node/adv_mecha id = "adv_mecha" display_name = "Advanced Exosuits" description = "For when you just aren't Gundam enough." - prereq_ids = list("adv_robotics", "mecha") + prereq_ids = list("adv_robotics") design_ids = list("mech_repair_droid") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -625,7 +627,7 @@ id = "mecha_odysseus" display_name = "EXOSUIT: Odysseus" description = "Odysseus exosuit designs" - prereq_ids = list("mecha") + prereq_ids = list("base") design_ids = list("odysseus_chassis", "odysseus_torso", "odysseus_head", "odysseus_left_arm", "odysseus_right_arm" ,"odysseus_left_leg", "odysseus_right_leg", "odysseus_main", "odysseus_peri") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -661,20 +663,11 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 -/datum/techweb_node/mech_tools - id = "mech_tools" - display_name = "Basic Exosuit Equipment" - description = "Various tools fit for basic mech units" - prereq_ids = list("mecha") - design_ids = list("mech_drill", "mech_mscanner", "mech_extinguisher", "mech_cable_layer") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 - /datum/techweb_node/adv_mecha_tools id = "adv_mecha_tools" display_name = "Advanced Exosuit Equipment" description = "Tools for high level mech suits" - prereq_ids = list("adv_mecha", "mech_tools") + prereq_ids = list("adv_mecha") design_ids = list("mech_rcd") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -683,7 +676,7 @@ id = "med_mech_tools" display_name = "Medical Exosuit Equipment" description = "Tools for high level mech suits" - prereq_ids = list("mecha", "adv_biotech", "mech_tools") + prereq_ids = list("adv_biotech") design_ids = list("mech_sleeper", "mech_syringe_gun", "mech_medi_beam") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -701,7 +694,7 @@ id = "mecha_tools" display_name = "Exosuit Weapon (LBX AC 10 \"Scattershot\")" description = "An advanced piece of mech weaponry" - prereq_ids = list("mecha", "ballistic_weapons") + prereq_ids = list("ballistic_weapons") design_ids = list("mech_scattershot") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -710,7 +703,7 @@ id = "mech_carbine" display_name = "Exosuit Weapon (FNX-99 \"Hades\" Carbine)" description = "An advanced piece of mech weaponry" - prereq_ids = list("mecha", "ballistic_weapons") + prereq_ids = list("ballistic_weapons") design_ids = list("mech_carbine") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -719,7 +712,7 @@ id = "mmech_ion" display_name = "Exosuit Weapon (MKIV Ion Heavy Cannon)" description = "An advanced piece of mech weaponry" - prereq_ids = list("mecha", "electronic_weapons", "emp_adv") + prereq_ids = list("electronic_weapons", "emp_adv") design_ids = list("mech_ion") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -728,7 +721,7 @@ id = "mech_tesla" display_name = "Exosuit Weapon (MKI Tesla Cannon)" description = "An advanced piece of mech weaponry" - prereq_ids = list("mecha", "electronic_weapons", "adv_power") + prereq_ids = list("electronic_weapons", "adv_power") design_ids = list("mech_tesla") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -737,7 +730,7 @@ id = "mech_laser" display_name = "Exosuit Weapon (CH-PS \"Immolator\" Laser)" description = "A basic piece of mech weaponry" - prereq_ids = list("mecha", "beam_weapons") + prereq_ids = list("beam_weapons") design_ids = list("mech_laser") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -746,7 +739,7 @@ id = "mech_laser_heavy" display_name = "Exosuit Weapon (CH-LC \"Solaris\" Laser Cannon)" description = "An advanced piece of mech weaponry" - prereq_ids = list("mecha", "adv_beam_weapons") + prereq_ids = list("adv_beam_weapons") design_ids = list("mech_laser_heavy") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -755,7 +748,7 @@ id = "mech_grenade_launcher" display_name = "Exosuit Weapon (SGL-6 Grenade Launcher)" description = "An advanced piece of mech weaponry" - prereq_ids = list("mecha", "explosive_weapons") + prereq_ids = list("explosive_weapons") design_ids = list("mech_grenade_launcher") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -764,7 +757,7 @@ id = "mech_missile_rack" display_name = "Exosuit Weapon (SRM-8 Missile Rack)" description = "An advanced piece of mech weaponry" - prereq_ids = list("mecha", "explosive_weapons") + prereq_ids = list("explosive_weapons") design_ids = list("mech_missile_rack") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -773,7 +766,7 @@ id = "clusterbang_launcher" display_name = "Exosuit Module (SOB-3 Clusterbang Launcher)" description = "An advanced piece of mech weaponry" - prereq_ids = list("mecha", "explosive_weapons") + prereq_ids = list("explosive_weapons") design_ids = list("clusterbang_launcher") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -782,7 +775,7 @@ id = "mech_teleporter" display_name = "Exosuit Module (Teleporter Module)" description = "An advanced piece of mech Equipment" - prereq_ids = list("mech_tools", "adv_bluespace") + prereq_ids = list("adv_bluespace") design_ids = list("mech_teleporter") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -791,7 +784,7 @@ id = "mech_wormhole_gen" display_name = "Exosuit Module (Localized Wormhole Generator)" description = "An advanced piece of mech weaponry" - prereq_ids = list("mecha", "mech_tools", "adv_bluespace") + prereq_ids = list("adv_bluespace") design_ids = list("mech_wormhole_gen") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -800,7 +793,7 @@ id = "mech_taser" display_name = "Exosuit Weapon (PBT \"Pacifier\" Mounted Taser)" description = "A basic piece of mech weaponry" - prereq_ids = list("mecha", "electronic_weapons") + prereq_ids = list("electronic_weapons") design_ids = list("mech_taser") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -809,7 +802,7 @@ id = "mech_lmg" display_name = "Exosuit Weapon (\"Ultra AC 2\" LMG)" description = "An advanced piece of mech weaponry" - prereq_ids = list("mecha", "ballistic_weapons") + prereq_ids = list("ballistic_weapons") design_ids = list("mech_lmg") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -818,7 +811,7 @@ id = "mech_diamond_drill" display_name = "Exosuit Diamond Drill" description = "A diamond drill fit for a large exosuit" - prereq_ids = list("mecha", "adv_mining") + prereq_ids = list("adv_mining") design_ids = list("mech_diamond_drill") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 diff --git a/code/modules/research/xenobiology/crossbreeding/regenerative.dm b/code/modules/research/xenobiology/crossbreeding/regenerative.dm index a0ccdf1549..50669ff435 100644 --- a/code/modules/research/xenobiology/crossbreeding/regenerative.dm +++ b/code/modules/research/xenobiology/crossbreeding/regenerative.dm @@ -120,7 +120,7 @@ Regenerative extracts: C.name = "fireproofed [C.name]" C.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) C.add_atom_colour("#000080", FIXED_COLOUR_PRIORITY) - C.max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + C.max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT C.heat_protection = C.body_parts_covered C.resistance_flags |= FIRE_PROOF diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 19c6d77576..c3a6ca8aef 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -50,7 +50,7 @@ scan_action = new potion_action = new stored_slimes = list() - listener = AddComponent(/datum/component/redirect, COMSIG_ATOM_CONTENTS_DEL, CALLBACK(src, .proc/on_contents_del)) + listener = AddComponent(/datum/component/redirect, list(COMSIG_ATOM_CONTENTS_DEL = CALLBACK(src, .proc/on_contents_del))) /obj/machinery/computer/camera_advanced/xenobio/Destroy() stored_slimes = null diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 59718eee8a..20e50e3554 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -874,14 +874,14 @@ if(!istype(C)) to_chat(user, "The potion can only be used on clothing!") return - if(C.max_heat_protection_temperature == FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT) + if(C.max_heat_protection_temperature >= FIRE_IMMUNITY_MAX_TEMP_PROTECT) to_chat(user, "The [C] is already fireproof!") return ..() to_chat(user, "You slather the blue gunk over the [C], fireproofing it.") C.name = "fireproofed [C.name]" C.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) C.add_atom_colour("#000080", FIXED_COLOUR_PRIORITY) - C.max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + C.max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT C.heat_protection = C.body_parts_covered C.resistance_flags |= FIRE_PROOF uses -- diff --git a/code/modules/ruins/lavalandruin_code/pizzaparty.dm b/code/modules/ruins/lavalandruin_code/pizzaparty.dm new file mode 100644 index 0000000000..a7776f4e6a --- /dev/null +++ b/code/modules/ruins/lavalandruin_code/pizzaparty.dm @@ -0,0 +1,9 @@ +//lavaland_surface_pizzaparty.dmm + +/obj/effect/spawner/lootdrop/pizzaparty + name = "pizza bomb spawner" + loot = list(/obj/item/pizzabox/margherita = 3, + /obj/item/pizzabox/meat = 3, + /obj/item/pizzabox/mushroom = 3, + /obj/item/pizzabox/bomb = 1) + lootdoubles = FALSE diff --git a/code/modules/ruins/lavalandruin_code/puzzle.dm b/code/modules/ruins/lavalandruin_code/puzzle.dm new file mode 100644 index 0000000000..05eedc3e79 --- /dev/null +++ b/code/modules/ruins/lavalandruin_code/puzzle.dm @@ -0,0 +1,351 @@ +/obj/effect/sliding_puzzle + name = "Sliding puzzle generator" + icon = 'icons/obj/items_and_weapons.dmi' //mapping + icon_state = "syndballoon" + invisibility = INVISIBILITY_ABSTRACT + anchored = TRUE + var/list/elements + var/floor_type = /turf/open/floor/vault + var/finished = FALSE + var/reward_type = /obj/item/reagent_containers/food/snacks/cookie + var/element_type = /obj/structure/puzzle_element + var/auto_setup = TRUE + var/empty_tile_id + +//Gets the turf where the tile with given id should be +/obj/effect/sliding_puzzle/proc/get_turf_for_id(id) + var/turf/center = get_turf(src) + switch(id) + if(1) + return get_step(center,NORTHWEST) + if(2) + return get_step(center,NORTH) + if(3) + return get_step(center,NORTHEAST) + if(4) + return get_step(center,WEST) + if(5) + return center + if(6) + return get_step(center,EAST) + if(7) + return get_step(center,SOUTHWEST) + if(8) + return get_step(center,SOUTH) + if(9) + return get_step(center,SOUTHEAST) + +/obj/effect/sliding_puzzle/Initialize(mapload) + ..() + return INITIALIZE_HINT_LATELOAD + +/obj/effect/sliding_puzzle/LateInitialize() + if(auto_setup) + setup() + +/obj/effect/sliding_puzzle/proc/check_setup_location() + for(var/id in 1 to 9) + var/turf/T = get_turf_for_id(id) + if(!T) + return FALSE + if(istype(T,/turf/closed/indestructible)) + return FALSE + return TRUE + + +/obj/effect/sliding_puzzle/proc/validate() + if(finished) + return + + if(elements.len < 8) //Someone broke it + qdel(src) + + //Check if everything is in place + for(var/id in 1 to 9) + var/target_turf = get_turf_for_id(id) + var/obj/structure/puzzle_element/E = locate() in target_turf + if(id == empty_tile_id && !E) // This location should be empty. + continue + if(!E || E.id != id) //wrong tile or no tile at all + return + //Ding ding + finish() + +/obj/effect/sliding_puzzle/Destroy() + if(LAZYLEN(elements)) + for(var/obj/structure/puzzle_element/E in elements) + E.source = null + elements.Cut() + return ..() + +#define COLLAPSE_DURATION 7 + +/obj/effect/sliding_puzzle/proc/finish() + finished = TRUE + for(var/mob/M in range(7,src)) + shake_camera(M, COLLAPSE_DURATION , 1) + for(var/obj/structure/puzzle_element/E in elements) + E.collapse() + + dispense_reward() + +/obj/effect/sliding_puzzle/proc/dispense_reward() + new reward_type(get_turf(src)) + +/obj/effect/sliding_puzzle/proc/is_solvable() + var/list/current_ordering = list() + for(var/obj/structure/puzzle_element/E in elements_in_order()) + current_ordering += E.id + + var/swap_tally = 0 + for(var/i in 1 to current_ordering.len) + var/checked_value = current_ordering[i] + for(var/j in i to current_ordering.len) + if(current_ordering[j] < checked_value) + swap_tally++ + + return swap_tally % 2 == 0 + +//swap two tiles in same row +/obj/effect/sliding_puzzle/proc/make_solvable() + var/first_tile_id = 1 + var/other_tile_id = 2 + if(empty_tile_id == 1 || empty_tile_id == 2) //Can't swap with empty one so just grab some in second row + first_tile_id = 4 + other_tile_id = 5 + + var/turf/T1 = get_turf_for_id(first_tile_id) + var/turf/T2 = get_turf_for_id(other_tile_id) + + var/obj/structure/puzzle_element/E1 = locate() in T1 + var/obj/structure/puzzle_element/E2 = locate() in T2 + + E1.forceMove(T2) + E2.forceMove(T1) + +/proc/cmp_xy_desc(atom/movable/A,atom/movable/B) + if(A.y > B.y) + return -1 + if(A.y < B.y) + return 1 + if(A.x > B.x) + return 1 + if(A.x < B.x) + return -1 + return 0 + +/obj/effect/sliding_puzzle/proc/elements_in_order() + return sortTim(elements,cmp=/proc/cmp_xy_desc) + +/obj/effect/sliding_puzzle/proc/get_base_icon() + var/icon/I = new('icons/obj/puzzle.dmi') + var/list/puzzles = icon_states(I) + var/puzzle_state = pick(puzzles) + var/icon/P = new('icons/obj/puzzle.dmi',puzzle_state) + return P + +/obj/effect/sliding_puzzle/proc/setup() + //First we slice the 96x96 icon into 32x32 pieces + var/list/puzzle_pieces = list() //id -> icon list + + var/width = 3 + var/height = 3 + var/list/left_ids = list() + var/tile_count = width * height + + //Generate per tile icons + for(var/id in 1 to tile_count) + var/y = width - round((id - 1) / width) + var/x = ((id - 1) % width) + 1 + + var/x_start = 1 + (x - 1) * world.icon_size + var/x_end = x_start + world.icon_size - 1 + var/y_start = 1 + ((y - 1) * world.icon_size) + var/y_end = y_start + world.icon_size - 1 + + var/icon/T = get_base_icon() + T.Crop(x_start,y_start,x_end,y_end) + puzzle_pieces["[id]"] = T + left_ids += id + + //Setup random empty tile + empty_tile_id = pick_n_take(left_ids) + var/turf/empty_tile_turf = get_turf_for_id(empty_tile_id) + empty_tile_turf.PlaceOnTop(floor_type,null,CHANGETURF_INHERIT_AIR) + var/mutable_appearance/MA = new(puzzle_pieces["[empty_tile_id]"]) + MA.layer = empty_tile_turf.layer + 0.1 + empty_tile_turf.add_overlay(MA) + + elements = list() + var/list/empty_spots = left_ids.Copy() + for(var/spot_id in empty_spots) + var/turf/T = get_turf_for_id(spot_id) + T = T.PlaceOnTop(floor_type,null,CHANGETURF_INHERIT_AIR) + var/obj/structure/puzzle_element/E = new element_type(T) + elements += E + var/chosen_id = pick_n_take(left_ids) + E.puzzle_icon = puzzle_pieces["[chosen_id]"] + E.source = src + E.id = chosen_id + E.set_puzzle_icon() + + if(!is_solvable()) + make_solvable() + +/obj/structure/puzzle_element + name = "mysterious pillar" + desc = "puzzling..." + icon = 'icons/obj/lavaland/artefacts.dmi' + icon_state = "puzzle_pillar" + anchored = FALSE + density = TRUE + var/id = 0 + var/obj/effect/sliding_puzzle/source + var/icon/puzzle_icon + +/obj/structure/puzzle_element/Move(nloc, dir) + if(!isturf(nloc) || moving_diagonally || get_dist(get_step(src,dir),get_turf(source)) > 1) + return 0 + else + return ..() + +/obj/structure/puzzle_element/proc/set_puzzle_icon() + cut_overlays() + if(puzzle_icon) + //Need to scale it down a bit to fit the static border + var/icon/C = new(puzzle_icon) + C.Scale(19,19) + var/mutable_appearance/puzzle_small = new(C) + puzzle_small.layer = layer + 0.1 + puzzle_small.pixel_x = 7 + puzzle_small.pixel_y = 7 + add_overlay(puzzle_small) + +/obj/structure/puzzle_element/Destroy() + if(source) + source.elements -= src + source.validate() + return ..() + +//Set the full image on the turf and delete yourself +/obj/structure/puzzle_element/proc/collapse() + var/turf/T = get_turf(src) + var/mutable_appearance/MA = new(puzzle_icon) + MA.layer = T.layer + 0.1 + T.add_overlay(MA) + //Some basic shaking animation + for(var/i in 1 to COLLAPSE_DURATION) + animate(src, pixel_x=rand(-5,5), pixel_y=rand(-2,2), time=1) + QDEL_IN(src,COLLAPSE_DURATION) + +/obj/structure/puzzle_element/Moved() + . = ..() + source.validate() + +//Admin abuse version so you can pick the icon before it sets up +/obj/effect/sliding_puzzle/admin + auto_setup = FALSE + var/icon/puzzle_icon + var/puzzle_state + +/obj/effect/sliding_puzzle/admin/get_base_icon() + var/icon/I = new(puzzle_icon,puzzle_state) + return I + +//Ruin version +/obj/effect/sliding_puzzle/lavaland + reward_type = /obj/structure/closet/crate/necropolis/puzzle + +/obj/effect/sliding_puzzle/lavaland/dispense_reward() + if(prob(25)) + //If it's not roaming somewhere else already. + var/mob/living/simple_animal/hostile/megafauna/bubblegum/B = locate() in GLOB.mob_list + if(!B) + reward_type = /mob/living/simple_animal/hostile/megafauna/bubblegum + return ..() + +//Prison cube version +/obj/effect/sliding_puzzle/prison + auto_setup = FALSE //This will be done by cube proc + var/mob/living/prisoner + element_type = /obj/structure/puzzle_element/prison + +/obj/effect/sliding_puzzle/prison/get_base_icon() + if(!prisoner) + CRASH("Prison cube without prisoner") + prisoner.setDir(SOUTH) + var/icon/I = getFlatIcon(prisoner) + I.Scale(96,96) + return I + +/obj/effect/sliding_puzzle/prison/Destroy() + if(prisoner) + to_chat(prisoner,"With the cube broken by force, you can feel your body falling apart.") + prisoner.death() + qdel(prisoner) + . = ..() + +/obj/effect/sliding_puzzle/prison/dispense_reward() + prisoner.forceMove(get_turf(src)) + prisoner.notransform = FALSE + prisoner = null + +//Some armor so it's harder to kill someone by mistake. +/obj/structure/puzzle_element/prison + armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 50, "bio" = 50, "rad" = 50, "fire" = 50, "acid" = 50) + +/obj/structure/puzzle_element/prison/relaymove(mob/user) + return + +/obj/item/prisoncube + name = "Prison Cube" + desc = "Dusty cube with humanoid imprint on it." + icon = 'icons/obj/lavaland/artefacts.dmi' + icon_state = "prison_cube" + +/obj/item/prisoncube/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + . = ..() + if(!proximity_flag || !isliving(target)) + return + var/mob/living/victim = target + var/mob/living/carbon/carbon_victim = victim + //Handcuffed or unconcious + if(istype(carbon_victim) && carbon_victim.handcuffed || victim.stat != CONSCIOUS) + if(!puzzle_imprison(target)) + to_chat(user,"[src] does nothing.") + return + to_chat(user,"You trap [victim] in the prison cube!") + qdel(src) + else + to_chat(user,"[src] only accepts restrained or unconcious prisoners.") + +/proc/puzzle_imprison(mob/living/prisoner) + var/turf/T = get_turf(prisoner) + var/obj/effect/sliding_puzzle/prison/cube = new(T) + if(!cube.check_setup_location()) + qdel(cube) + return FALSE + + //First grab the prisoner and move them temporarily into the generator so they won't get thrown around. + prisoner.notransform = TRUE + prisoner.forceMove(cube) + to_chat(prisoner,"You're trapped by the prison cube! You will remain trapped until someone solves it.") + + //Clear the area from objects (and cube user) + var/list/things_to_throw = list() + for(var/atom/movable/AM in range(1,T)) + if(!AM.anchored) + things_to_throw += AM + + for(var/atom/movable/AM in things_to_throw) + var/throwtarget = get_edge_target_turf(T, get_dir(T, get_step_away(AM, T))) + AM.throw_at(throwtarget, 2, 3) + + //Create puzzle itself + cube.prisoner = prisoner + cube.setup() + + //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 diff --git a/code/modules/ruins/lavalandruin_code/syndicate_base.dm b/code/modules/ruins/lavalandruin_code/syndicate_base.dm new file mode 100644 index 0000000000..514ea35e8e --- /dev/null +++ b/code/modules/ruins/lavalandruin_code/syndicate_base.dm @@ -0,0 +1,22 @@ +//lavaland_surface_syndicate_base1.dmm + +/obj/machinery/vending/syndichem + name = "\improper SyndiChem" + desc = "A vending machine full of grenades and grenade accessories. Sponsored by DonkCo(tm)." + req_access = list(ACCESS_SYNDICATE) + products = list(/obj/item/stack/cable_coil/random = 5, + /obj/item/assembly/igniter = 20, + /obj/item/assembly/prox_sensor = 5, + /obj/item/assembly/signaler = 5, + /obj/item/assembly/timer = 5, + /obj/item/assembly/voice = 5, + /obj/item/assembly/health = 5, + /obj/item/assembly/infra = 5, + /obj/item/grenade/chem_grenade = 5, + /obj/item/grenade/chem_grenade/large = 5, + /obj/item/grenade/chem_grenade/pyro = 5, + /obj/item/grenade/chem_grenade/cryo = 5, + /obj/item/grenade/chem_grenade/adv_release = 5, + /obj/item/reagent_containers/food/drinks/bottle/holywater = 1) + product_slogans = "It's not pyromania if you're getting paid!;You smell that? Plasma, son. Nothing else in the world smells like that.;I love the smell of Plasma in the morning." + resistance_flags = FIRE_PROOF diff --git a/code/modules/ruins/spaceruin_code/miracle.dm b/code/modules/ruins/spaceruin_code/miracle.dm new file mode 100644 index 0000000000..075d43df25 --- /dev/null +++ b/code/modules/ruins/spaceruin_code/miracle.dm @@ -0,0 +1,4 @@ +/////////// miracle ruin + +/obj/item/storage/backpack/satchel/flat/secret/miracle_ruin + reward_all_of_these = list(/obj/item/gun/energy/pulse/prize) diff --git a/code/modules/ruins/spaceruin_code/oldstation.dm b/code/modules/ruins/spaceruin_code/oldstation.dm index b216145023..e72dbea044 100644 --- a/code/modules/ruins/spaceruin_code/oldstation.dm +++ b/code/modules/ruins/spaceruin_code/oldstation.dm @@ -47,3 +47,7 @@ SIGNIFICANT EVENTS OF NOTE
    1: The primary radiation detectors were taken offline after 112 years due to power failure, secondary radiation detectors showed no residual \ radiation on station. Deduction, primarily detector was malfunctioning and was producing a radiation signal when there was none.

    2: A data burst from a nearby Nanotrasen Space \ Station was received, this data burst contained research data that has been uploaded to our RnD labs.

    3: Unknown invasion force has occupied Delta station." + +/obj/item/paper/fluff/ruins/oldstation/generator_manual + name = "S.U.P.E.R.P.A.C.M.A.N.-type portable generator manual" + info = "You can barely make out a faded sentence...

    Wrench down the generator on top of a wire node connected to either a SMES input terminal or the power grid." diff --git a/code/modules/shuttle/arrivals.dm b/code/modules/shuttle/arrivals.dm index 60998215de..4fefc82cd3 100644 --- a/code/modules/shuttle/arrivals.dm +++ b/code/modules/shuttle/arrivals.dm @@ -10,6 +10,8 @@ callTime = INFINITY ignitionTime = 50 + + movement_force = list("KNOCKDOWN" = 3, "THROW" = 0) var/sound_played var/damaged //too damaged to undock? diff --git a/code/modules/shuttle/assault_pod.dm b/code/modules/shuttle/assault_pod.dm index 43b273914c..a33676de29 100644 --- a/code/modules/shuttle/assault_pod.dm +++ b/code/modules/shuttle/assault_pod.dm @@ -1,7 +1,6 @@ /obj/docking_port/mobile/assault_pod name = "assault pod" id = "steel_rain" - timid = FALSE dwidth = 3 width = 7 height = 7 diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm index ee491f17be..0c957919a1 100644 --- a/code/modules/shuttle/computer.dm +++ b/code/modules/shuttle/computer.dm @@ -69,3 +69,6 @@ obj_flags |= EMAGGED to_chat(user, "You fried the consoles ID checking system.") +/obj/machinery/computer/shuttle/proc/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/elevator.dm b/code/modules/shuttle/elevator.dm index 959cc2dae7..4584cd5958 100644 --- a/code/modules/shuttle/elevator.dm +++ b/code/modules/shuttle/elevator.dm @@ -1,7 +1,6 @@ /obj/docking_port/mobile/elevator name = "elevator" id = "elevator" - timid = FALSE dwidth = 3 width = 7 height = 7 diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 20b8c26d83..dab76482c2 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -245,7 +245,7 @@ /obj/docking_port/mobile/emergency/proc/is_hijacked() var/has_people = FALSE - + var/hijacker_present = FALSE for(var/mob/living/player in GLOB.player_list) if(player.mind) if(player.stat != DEAD) @@ -258,10 +258,23 @@ if(shuttle_areas[get_area(player)]) has_people = TRUE var/location = get_turf(player.mind.current) + //Non-antag present. Can't hijack. if(!(player.mind.has_antag_datum(/datum/antagonist)) && !istype(location, /turf/open/floor/plasteel/shuttle/red) && !istype(location, /turf/open/floor/mineral/plastitanium/brig)) return FALSE + //Antag present, doesn't stop but let's see if we actually want to hijack + var/prevent = FALSE + for(var/datum/antagonist/A in player.mind.antag_datums) + if(A.can_hijack == HIJACK_HIJACKER) + hijacker_present = TRUE + prevent = FALSE + break //If we have both prevent and hijacker antags assume we want to hijack. + else if(A.can_hijack == HIJACK_PREVENT) + prevent = TRUE + if(prevent) + return FALSE + - return has_people + return has_people && hijacker_present /obj/docking_port/mobile/emergency/proc/ShuttleDBStuff() set waitfor = FALSE @@ -409,7 +422,6 @@ /obj/docking_port/mobile/pod name = "escape pod" id = "pod" - timid = FALSE dwidth = 1 width = 3 height = 4 @@ -427,33 +439,12 @@ to_chat(usr, "Escape pods will only launch during \"Code Red\" security alert.") return TRUE -/obj/docking_port/mobile/pod/Initialize() - . = ..() - var/static/i = 1 - if(id == initial(id)) - id = "[initial(id)][i]" - if(name == initial(name)) - name = "[initial(name)] [i]" - - for(var/k in shuttle_areas) - var/area/place = k - for(var/obj/machinery/computer/shuttle/pod/pod_comp in place) - if(pod_comp.shuttleId == initial(pod_comp.shuttleId)) - pod_comp.shuttleId = id - if(pod_comp.possible_destinations == initial(pod_comp.possible_destinations)) - pod_comp.possible_destinations = "pod_lavaland[i]" - - i++ - - - /obj/docking_port/mobile/pod/cancel() return /obj/machinery/computer/shuttle/pod name = "pod control computer" admin_controlled = 1 - shuttleId = "pod" possible_destinations = "pod_asteroid" icon = 'icons/obj/terminals.dmi' icon_state = "dorm_available" @@ -470,6 +461,11 @@ obj_flags |= EMAGGED to_chat(user, "You fry the pod's alert level checking system.") +/obj/machinery/computer/shuttle/pod/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) + . = ..() + if(possible_destinations == initial(possible_destinations) || override) + possible_destinations = "pod_lavaland[idnum]" + /obj/docking_port/stationary/random name = "escape pod" id = "pod" diff --git a/code/modules/shuttle/manipulator.dm b/code/modules/shuttle/manipulator.dm index 275f2abb60..ecd138d73b 100644 --- a/code/modules/shuttle/manipulator.dm +++ b/code/modules/shuttle/manipulator.dm @@ -198,7 +198,8 @@ preview_template = null if(!preview_shuttle) - load_template(loading_template) + if(load_template(loading_template)) + preview_shuttle.linkup(loading_template, destination_port) preview_template = loading_template // get the existing shuttle information, if any @@ -232,7 +233,7 @@ preview_shuttle.movement_force = list("KNOCKDOWN" = 0, "THROW" = 0) preview_shuttle.initiate_docking(D) preview_shuttle.movement_force = force_memory - + . = preview_shuttle // Shuttle state involves a mode and a timer based on world.time, so @@ -249,8 +250,8 @@ existing_shuttle = null selected = null -/obj/machinery/shuttle_manipulator/proc/load_template( - datum/map_template/shuttle/S) +/obj/machinery/shuttle_manipulator/proc/load_template(datum/map_template/shuttle/S) + . = FALSE // load shuttle template, centred at shuttle import landmark, var/turf/landmark_turf = get_turf(locate(/obj/effect/landmark/shuttle_import) in GLOB.landmarks_list) S.load(landmark_turf, centered = TRUE) @@ -266,18 +267,10 @@ for(var/T in affected) for(var/obj/docking_port/P in T) if(istype(P, /obj/docking_port/mobile)) - var/obj/docking_port/mobile/M = P found++ if(found > 1) qdel(P, force=TRUE) log_world("Map warning: Shuttle Template [S.mappath] has multiple mobile docking ports.") - else if(!M.timid) - // The shuttle template we loaded isn't "timid" which means - // it's already registered with the shuttles subsystem. - // This is a bad thing. - stack_trace("Template [S] is non-timid! Unloading.") - M.jumpToNullSpace() - return else preview_shuttle = P if(istype(P, /obj/docking_port/stationary)) @@ -293,6 +286,7 @@ return //Everything fine S.on_bought() + return TRUE /obj/machinery/shuttle_manipulator/proc/unload_preview() if(preview_shuttle) diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index 4e105191ee..03538d1085 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -247,6 +247,12 @@ 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) + if(port && (shuttleId == initial(shuttleId) || override)) + shuttleId = port.id + if(dock) + jumpto_ports += dock.id + /mob/camera/aiEye/remote/shuttle_docker visible_icon = FALSE use_static = USE_STATIC_NONE diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 32c186023b..1f89c53778 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -253,11 +253,6 @@ var/list/movement_force = list("KNOCKDOWN" = 3, "THROW" = 2) - // A timid shuttle will not register itself with the shuttle subsystem - // All shuttle templates MUST be timid, imports will fail if they're not - // Shuttle defined already on the map MUST NOT be timid, or they won't work - var/timid = TRUE - var/list/ripples = list() var/engine_coeff = 1 //current engine coeff var/current_engines = 0 //current engine power @@ -280,8 +275,6 @@ /obj/docking_port/mobile/Initialize(mapload) . = ..() - if(!timid) - register() if(!id) id = "[SSshuttle.mobile.len]" @@ -303,6 +296,27 @@ highlight("#0f0") #endif +// Called after the shuttle is loaded from template +/obj/docking_port/mobile/proc/linkup(datum/map_template/shuttle/template, obj/docking_port/stationary/dock) + var/list/static/shuttle_id = list() + var/idnum + if(!shuttle_id[template]) + shuttle_id[template] = idnum = 1 + else + idnum = shuttle_id[template]++ + if(idnum > 1) + if(id == initial(id)) + 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) + + //this is a hook for custom behaviour. Maybe at some point we could add checks to see if engines are intact /obj/docking_port/mobile/proc/canMove() return TRUE diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index 6f2997a078..e77c2420c2 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -6,7 +6,8 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /obj/item/disk/nuclear, /obj/machinery/nuclearbomb, /obj/item/beacon, - /obj/singularity, + /obj/singularity/narsie, + /obj/singularity/wizard, /obj/machinery/teleport/station, /obj/machinery/teleport/hub, /obj/machinery/quantumpad, diff --git a/code/modules/shuttle/white_ship.dm b/code/modules/shuttle/white_ship.dm index 6264588a3a..bca16c35f1 100644 --- a/code/modules/shuttle/white_ship.dm +++ b/code/modules/shuttle/white_ship.dm @@ -5,11 +5,24 @@ shuttleId = "whiteship" possible_destinations = "whiteship_away;whiteship_home;whiteship_z4;whiteship_lavaland;whiteship_custom" +/obj/machinery/computer/shuttle/white_ship/pod + name = "Salvage Pod Console" + desc = "Used to control the Salvage Pod." + circuit = /obj/item/circuitboard/computer/white_ship/pod + shuttleId = "whiteship_pod" + possible_destinations = "whiteship_pod_home;whiteship_pod_custom" + +/obj/machinery/computer/shuttle/white_ship/pod/recall + name = "Salvage Pod Recall Console" + desc = "Used to recall the Salvage Pod." + circuit = /obj/item/circuitboard/computer/white_ship/pod/recall + possible_destinations = "whiteship_pod_home" + /obj/machinery/computer/camera_advanced/shuttle_docker/whiteship name = "White Ship Navigation Computer" desc = "Used to designate a precise transit location for the White Ship." shuttleId = "whiteship" - lock_override = CAMERA_LOCK_STATION + lock_override = NONE shuttlePortId = "whiteship_custom" shuttlePortName = "Custom Location" jumpto_ports = list("whiteship_away" = 1, "whiteship_home" = 1, "whiteship_z4" = 1) @@ -18,6 +31,18 @@ y_offset = -10 designate_time = 100 +/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship/pod + name = "Salvage Pod Navigation Computer" + desc = "Used to designate a precise transit location for the Salvage Pod." + shuttleId = "whiteship_pod" + shuttlePortId = "whiteship_pod_custom" + shuttlePortName = "Custom Location" + jumpto_ports = list("whiteship_pod_home" = 1) + view_range = 7 + x_offset = -2 + y_offset = 0 + designate_time = 0 + /obj/machinery/computer/camera_advanced/shuttle_docker/whiteship/Initialize() . = ..() GLOB.jam_on_wardec += src @@ -25,3 +50,9 @@ /obj/machinery/computer/camera_advanced/shuttle_docker/whiteship/Destroy() GLOB.jam_on_wardec -= src return ..() + +/obj/effect/spawner/lootdrop/whiteship_cere_ripley + name = "25% mech 75% wreckage ripley spawner" + loot = list(/obj/mecha/working/ripley/mining = 1, + /obj/structure/mecha_wreckage/ripley = 5) + lootdoubles = FALSE diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index 7af309f0d9..cf315f9f7a 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -51,7 +51,7 @@ return FALSE if(C.has_trait(TRAIT_NODISMEMBER)) return FALSE - + . = list() var/organ_spilled = 0 var/turf/T = get_turf(C) C.add_splatter_floor(T) @@ -64,14 +64,15 @@ O.Remove(C) O.forceMove(T) organ_spilled = 1 + . += X if(cavity_item) cavity_item.forceMove(T) + . += cavity_item cavity_item = null organ_spilled = 1 if(organ_spilled) C.visible_message("[C]'s internal organs spill out onto the floor!") - return 1 diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index bdd01b6b41..3f800d4923 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -32,7 +32,7 @@ var/lip_color = "white" /obj/item/bodypart/head/can_dismember(obj/item/I) - if(!(owner.stat == DEAD)) + if(!((owner.stat == DEAD) || owner.InFullCritical())) return FALSE return ..() diff --git a/code/modules/surgery/limb_augmentation.dm b/code/modules/surgery/limb_augmentation.dm index bfd5d323c0..43531d5d65 100644 --- a/code/modules/surgery/limb_augmentation.dm +++ b/code/modules/surgery/limb_augmentation.dm @@ -57,8 +57,7 @@ tool.cut_overlays() tool = tool.contents[1] if(istype(tool) && user.temporarilyRemoveItemFromInventory(tool)) - L.drop_limb(TRUE) //The limb is augmented, not directly replaced, so keep the internal organs - tool.attach_limb(target) + tool.replace_limb(target) user.visible_message("[user] successfully augments [target]'s [parse_zone(target_zone)]!", "You successfully augment [target]'s [parse_zone(target_zone)].") add_logs(user, target, "augmented", addition="by giving him new [parse_zone(target_zone)] INTENT: [uppertext(user.a_intent)]") else diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index d38e76ae6e..af750b8b84 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -242,7 +242,7 @@ if (mobhook && mobhook.parent != M) QDEL_NULL(mobhook) if (!mobhook) - mobhook = M.AddComponent(/datum/component/redirect, list(COMSIG_ATOM_DIR_CHANGE), CALLBACK(src, .proc/update_visuals)) + mobhook = M.AddComponent(/datum/component/redirect, list(COMSIG_ATOM_DIR_CHANGE = CALLBACK(src, .proc/update_visuals))) /obj/item/organ/eyes/robotic/glow/Remove(mob/living/carbon/M) . = ..() diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 9eeb667e2f..52904b8af1 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -54,11 +54,11 @@ var/sound/fastbeat = sound('sound/health/fastbeat.ogg', repeat = TRUE) var/mob/living/carbon/H = owner - if(H.health <= H.crit_modifier() && beat != BEAT_SLOW) + if(H.health <= H.crit_threshold && beat != BEAT_SLOW) beat = BEAT_SLOW H.playsound_local(get_turf(H), slowbeat,40,0, channel = CHANNEL_HEARTBEAT) to_chat(owner, "You feel your heart slow down...") - if(beat == BEAT_SLOW && H.health > H.crit_modifier()) + if(beat == BEAT_SLOW && H.health > H.crit_threshold) H.stop_sound_channel(CHANNEL_HEARTBEAT) beat = BEAT_NONE diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index e338c4aa0c..114fe8bf9d 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -64,7 +64,7 @@ if(!breath || (breath.total_moles() == 0)) if(H.reagents.has_reagent(crit_stabilizing_reagent)) return - if(H.health >= H.crit_modifier()) + if(H.health >= H.crit_threshold) H.adjustOxyLoss(HUMAN_MAX_OXYLOSS) else if(!H.has_trait(TRAIT_NOCRITDAMAGE)) H.adjustOxyLoss(HUMAN_CRIT_MAX_OXYLOSS) @@ -111,7 +111,7 @@ H.throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy) else H.failed_last_breath = FALSE - if(H.health >= H.crit_modifier()) + if(H.health >= H.crit_threshold) H.adjustOxyLoss(-5) gas_breathed = breath_gases[/datum/gas/oxygen][MOLES] H.clear_alert("not_enough_oxy") @@ -139,7 +139,7 @@ H.throw_alert("nitro", /obj/screen/alert/not_enough_nitro) else H.failed_last_breath = FALSE - if(H.health >= H.crit_modifier()) + if(H.health >= H.crit_threshold) H.adjustOxyLoss(-5) gas_breathed = breath_gases[/datum/gas/nitrogen][MOLES] H.clear_alert("nitro") @@ -176,7 +176,7 @@ H.throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2) else H.failed_last_breath = FALSE - if(H.health >= H.crit_modifier()) + if(H.health >= H.crit_threshold) H.adjustOxyLoss(-5) gas_breathed = breath_gases[/datum/gas/carbon_dioxide][MOLES] H.clear_alert("not_enough_co2") @@ -206,7 +206,7 @@ H.throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox) else H.failed_last_breath = FALSE - if(H.health >= H.crit_modifier()) + if(H.health >= H.crit_threshold) H.adjustOxyLoss(-5) gas_breathed = breath_gases[/datum/gas/plasma][MOLES] H.clear_alert("not_enough_tox") diff --git a/code/modules/surgery/organs/tails.dm b/code/modules/surgery/organs/tails.dm index 8b05cbef08..b6701643a9 100644 --- a/code/modules/surgery/organs/tails.dm +++ b/code/modules/surgery/organs/tails.dm @@ -10,9 +10,8 @@ /obj/item/organ/tail/Remove(mob/living/carbon/human/H, special = 0) ..() - if(istype(H)) - H.endTailWag() - + if(H && H.dna && H.dna.species) + H.dna.species.stop_wagging_tail(H) /obj/item/organ/tail/cat name = "cat tail" diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 6a835f2c9c..ba1f28921d 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -201,6 +201,15 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 10 surplus = 40 include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/carbine + name = "M-90gl Carbine" + desc = "A fully-loaded, specialized three-round burst carbine that fires 5.56mm ammunition from a 30 round magazine \ + with a togglable 40mm under-barrel grenade launcher." + item = /obj/item/gun/ballistic/automatic/m90 + cost = 18 + surplus = 50 + include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/dangerous/machinegun name = "L6 Squad Automatic Weapon" @@ -395,6 +404,15 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) player_minimum = 25 restricted = TRUE +/datum/uplink_item/dangerous/buzzkill + name = "Buzzkill Grenade Box" + desc = "A box with three grenades that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe \ + with random toxins. Courtesy of the BLF and Tiger Cooperative." + item = /obj/item/storage/box/syndie_kit/bee_grenades + cost = 15 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + // Ammunition /datum/uplink_item/ammo category = "Ammunition" @@ -508,6 +526,22 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/storage/backpack/duffelbag/syndie/ammo/smg cost = 20 include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/carbine + name = "5.56mm Toploader Magazine" + desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ + These bullets pack less punch than 1.95mm rounds, but they still offer more power than .45 ammo." + item = /obj/item/ammo_box/magazine/m556 + cost = 4 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/a40mm + name = "40mm Grenade" + desc = "A 40mm HE grenade for use with the M-90gl's under-barrel grenade launcher. \ + Your teammates will ask you to not shoot these down small hallways." + item = /obj/item/ammo_casing/a40mm + cost = 2 + include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/ammo/machinegun cost = 6 @@ -1259,6 +1293,12 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 4 restricted = TRUE +/datum/uplink_item/implants/stealthimplant + name = "Stealth Implant" + desc = "This one-of-a-kind implant will make you almost invisible if you play your cards right." + item = /obj/item/implanter/stealth + cost = 8 + // Cybernetics /datum/uplink_item/cyber_implants category = "Cybernetic Implants" @@ -1553,7 +1593,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/badass/random name = "Random Item" desc = "Picking this will purchase a random item. Useful if you have some TC to spare or if you haven't decided on a strategy yet." - item = /obj/item/paper + item = /obj/effect/gibspawner/generic // non-tangible item because techwebs use this path to determine illegal tech cost = 0 cant_discount = TRUE diff --git a/code/modules/vehicles/speedbike.dm b/code/modules/vehicles/speedbike.dm index 9c39d2d852..6526e6d89a 100644 --- a/code/modules/vehicles/speedbike.dm +++ b/code/modules/vehicles/speedbike.dm @@ -47,7 +47,7 @@ var/static/mutable_appearance/overlay = mutable_appearance(icon, "speedwagon_cover", ABOVE_MOB_LAYER) max_buckled_mobs = 4 var/crash_all = FALSE //CHAOS - pixel_y = -48 //to fix the offset when Initialized() + pixel_y = -48 pixel_x = -48 /obj/vehicle/ridden/space/speedwagon/Initialize() @@ -59,6 +59,10 @@ D.set_riding_offsets(2, list(TEXT_NORTH = list(19, -5, 4), TEXT_SOUTH = list(-13, 3, 4), TEXT_EAST = list(-4, -3, 4.1), TEXT_WEST = list(4, 28, 3.9))) D.set_riding_offsets(3, list(TEXT_NORTH = list(-10, -18, 4.2), TEXT_SOUTH = list(16, 25, 3.9), TEXT_EAST = list(-22, 30), TEXT_WEST = list(22, -3, 4.1))) D.set_riding_offsets(4, list(TEXT_NORTH = list(19, -18, 4.2), TEXT_SOUTH = list(-13, 25, 3.9), TEXT_EAST = list(-22, 3, 3.9), TEXT_WEST = list(22, 28))) + D.set_vehicle_dir_offsets(NORTH, -48, -48) + D.set_vehicle_dir_offsets(SOUTH, -48, -48) + D.set_vehicle_dir_offsets(EAST, -48, -48) + D.set_vehicle_dir_offsets(WEST, -48, -48) for(var/i in GLOB.cardinals) D.set_vehicle_dir_layer(i, BELOW_MOB_LAYER) diff --git a/code/modules/vending/autodrobe.dm b/code/modules/vending/autodrobe.dm index 95211a9600..65480cd113 100644 --- a/code/modules/vending/autodrobe.dm +++ b/code/modules/vending/autodrobe.dm @@ -8,7 +8,12 @@ vend_reply = "Thank you for using AutoDrobe!" products = list(/obj/item/clothing/suit/chickensuit = 1, /obj/item/clothing/head/chicken = 1, - /obj/item/clothing/under/gladiator = 1, + /obj/item/clothing/under/rank/blueclown = 1, + /obj/item/clothing/under/rank/greenclown = 1, + /obj/item/clothing/under/rank/yellowclown = 1, + /obj/item/clothing/under/rank/orangeclown = 1, + /obj/item/clothing/under/rank/purpleclown = 1, + /obj/item/clothing/under/gladiator = 1, /obj/item/clothing/head/helmet/gladiator = 1, /obj/item/clothing/under/gimmick/rank/captain/suit = 1, /obj/item/clothing/head/flatcap = 1, @@ -114,12 +119,14 @@ /obj/item/clothing/mask/muzzle = 2) premium = list(/obj/item/clothing/suit/pirate/captain = 2, /obj/item/clothing/head/pirate/captain = 2, + /obj/item/clothing/under/rank/rainbowclown = 1, /obj/item/clothing/head/helmet/roman/fake = 1, /obj/item/clothing/head/helmet/roman/legionnaire/fake = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1, /obj/item/shield/riot/roman/fake = 1, - /obj/item/skub = 1) + /obj/item/skub = 1,) + refill_canister = /obj/item/vending_refill/autodrobe /obj/machinery/vending/autodrobe/all_access diff --git a/code/modules/vending/boozeomat.dm b/code/modules/vending/boozeomat.dm index 0d193c451d..735967440f 100644 --- a/code/modules/vending/boozeomat.dm +++ b/code/modules/vending/boozeomat.dm @@ -63,6 +63,9 @@ /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass = 4); req_access = list(ACCESS_CAPTAIN) +/obj/machinery/vending/boozeomat/syndicate_access + req_access = list(ACCESS_SYNDICATE) + /obj/item/vending_refill/boozeomat machine_name = "Booze-O-Mat" icon_state = "refill_booze" diff --git a/code/modules/vending/cigarette.dm b/code/modules/vending/cigarette.dm index 6b9334362d..36434f6b03 100644 --- a/code/modules/vending/cigarette.dm +++ b/code/modules/vending/cigarette.dm @@ -20,6 +20,16 @@ /obj/item/storage/fancy/cigarettes/cigars/cohiba = 1) refill_canister = /obj/item/vending_refill/cigarette +/obj/machinery/vending/cigarette/syndicate + products = list(/obj/item/storage/fancy/cigarettes/cigpack_syndicate = 7, + /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3, + /obj/item/storage/fancy/cigarettes/cigpack_robust = 2, + /obj/item/storage/fancy/cigarettes/cigpack_carp = 3, + /obj/item/storage/fancy/cigarettes/cigpack_midori = 1, + /obj/item/storage/box/matches = 10, + /obj/item/lighter/greyscale = 4, + /obj/item/storage/fancy/rollingpapers = 5) + /obj/machinery/vending/cigarette/beach //Used in the lavaland_biodome_beach.dmm ruin name = "\improper ShadyCigs Ultra" desc = "Now with extra premium products!" diff --git a/code/modules/vending/medical.dm b/code/modules/vending/medical.dm index bea449845c..5ff07cc842 100644 --- a/code/modules/vending/medical.dm +++ b/code/modules/vending/medical.dm @@ -38,3 +38,7 @@ /obj/item/vending_refill/medical machine_name = "NanoMed Plus" icon_state = "refill_medical" + +/obj/machinery/vending/medical/syndicate_access + name = "\improper SyndiMed Plus" + req_access = list(ACCESS_SYNDICATE) \ No newline at end of file diff --git a/code/modules/vending/medical_wall.dm b/code/modules/vending/medical_wall.dm index ef19ce3b9b..84c4891589 100644 --- a/code/modules/vending/medical_wall.dm +++ b/code/modules/vending/medical_wall.dm @@ -20,3 +20,9 @@ /obj/item/vending_refill/wallmed machine_name = "NanoMed" icon_state = "refill_medical" + +/obj/machinery/vending/wallmed/pubby + products = list(/obj/item/reagent_containers/syringe = 3, + /obj/item/reagent_containers/pill/patch/styptic = 1, + /obj/item/reagent_containers/pill/patch/silver_sulf = 1, + /obj/item/reagent_containers/medspray/sterilizine = 1) diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index 40e09cee23..95c981f62b 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -7,10 +7,10 @@ icon_state = "secdrobe" product_ads = "Beat perps in style!;It's red so you can't see the blood!;You have the right to be fashionable!;Now you can be the fashion police you always wanted to be!" vend_reply = "Thank you for using the SecDrobe!" - products = list(/obj/item/clothing/suit/hooded/wintercoat/security = 1, - /obj/item/storage/backpack/security = 1, - /obj/item/storage/backpack/satchel/sec = 1, - /obj/item/storage/backpack/duffelbag/sec = 2, + products = list(/obj/item/clothing/suit/hooded/wintercoat/security = 3, + /obj/item/storage/backpack/security = 3, + /obj/item/storage/backpack/satchel/sec = 3, + /obj/item/storage/backpack/duffelbag/sec = 3, /obj/item/clothing/under/rank/security = 3, /obj/item/clothing/shoes/jackboots = 3, /obj/item/clothing/head/beret/sec = 3, @@ -18,7 +18,8 @@ /obj/item/clothing/mask/bandana/red = 3, /obj/item/clothing/under/rank/security/skirt = 3, /obj/item/clothing/under/rank/security/grey = 3, - /obj/item/clothing/under/pants/khaki = 3) + /obj/item/clothing/under/pants/khaki = 3, + /obj/item/clothing/under/rank/security/blueshirt = 3) premium = list(/obj/item/clothing/under/rank/security/navyblue = 3, /obj/item/clothing/suit/security/officer = 3, /obj/item/clothing/head/beret/sec/navyofficer = 3) @@ -33,23 +34,23 @@ icon_state = "medidrobe" product_ads = "Make those blood stains look fashionable!!" vend_reply = "Thank you for using the MediDrobe!" - products = list(/obj/item/clothing/accessory/pocketprotector = 1, - /obj/item/storage/backpack/duffelbag/med = 1, - /obj/item/storage/backpack/medic = 1, - /obj/item/storage/backpack/satchel/med = 1, - /obj/item/clothing/suit/hooded/wintercoat/medical = 1, - /obj/item/clothing/under/rank/nursesuit = 1, - /obj/item/clothing/head/nursehat = 1, - /obj/item/clothing/under/rank/medical/blue = 1, - /obj/item/clothing/under/rank/medical/green = 1, - /obj/item/clothing/under/rank/medical/purple = 1, - /obj/item/clothing/under/rank/medical = 3, - /obj/item/clothing/suit/toggle/labcoat = 3, - /obj/item/clothing/suit/toggle/labcoat/emt = 3, - /obj/item/clothing/shoes/sneakers/white = 3, - /obj/item/clothing/head/soft/emt = 3, - /obj/item/clothing/suit/apron/surgical = 1, - /obj/item/clothing/mask/surgical = 1) + products = list(/obj/item/clothing/accessory/pocketprotector = 4, + /obj/item/storage/backpack/duffelbag/med = 4, + /obj/item/storage/backpack/medic = 4, + /obj/item/storage/backpack/satchel/med = 4, + /obj/item/clothing/suit/hooded/wintercoat/medical = 4, + /obj/item/clothing/under/rank/nursesuit = 4, + /obj/item/clothing/head/nursehat = 4, + /obj/item/clothing/under/rank/medical/blue = 4, + /obj/item/clothing/under/rank/medical/green = 4, + /obj/item/clothing/under/rank/medical/purple = 4, + /obj/item/clothing/under/rank/medical = 4, + /obj/item/clothing/suit/toggle/labcoat = 4, + /obj/item/clothing/suit/toggle/labcoat/emt = 4, + /obj/item/clothing/shoes/sneakers/white = 4, + /obj/item/clothing/head/soft/emt = 4, + /obj/item/clothing/suit/apron/surgical = 4, + /obj/item/clothing/mask/surgical = 4) refill_canister = /obj/item/vending_refill/wardrobe/medi_wardrobe /obj/item/vending_refill/wardrobe/medi_wardrobe @@ -61,11 +62,11 @@ icon_state = "engidrobe" product_ads = "Guaranteed to protect your feet from industrial accidents!;Afraid of radiation? Then wear yellow!" vend_reply = "Thank you for using the EngiDrobe!" - products = list(/obj/item/clothing/accessory/pocketprotector = 1, - /obj/item/storage/backpack/duffelbag/engineering = 1, - /obj/item/storage/backpack/industrial = 1, - /obj/item/storage/backpack/satchel/eng = 1, - /obj/item/clothing/suit/hooded/wintercoat/engineering = 1, + products = list(/obj/item/clothing/accessory/pocketprotector = 3, + /obj/item/storage/backpack/duffelbag/engineering = 3, + /obj/item/storage/backpack/industrial = 3, + /obj/item/storage/backpack/satchel/eng = 3, + /obj/item/clothing/suit/hooded/wintercoat/engineering = 3, /obj/item/clothing/under/rank/engineer = 3, /obj/item/clothing/suit/hazardvest = 3, /obj/item/clothing/shoes/workboots = 3, @@ -81,10 +82,10 @@ icon_state = "atmosdrobe" product_ads = "Get your inflammable clothing right here!!!" vend_reply = "Thank you for using the AtmosDrobe!" - products = list(/obj/item/clothing/accessory/pocketprotector = 1, - /obj/item/storage/backpack/duffelbag/engineering = 1, - /obj/item/storage/backpack/satchel/eng = 1, - /obj/item/storage/backpack/industrial = 1, + products = list(/obj/item/clothing/accessory/pocketprotector = 2, + /obj/item/storage/backpack/duffelbag/engineering = 2, + /obj/item/storage/backpack/satchel/eng = 2, + /obj/item/storage/backpack/industrial = 2, /obj/item/clothing/suit/hooded/wintercoat/engineering/atmos = 3, /obj/item/clothing/under/rank/atmospheric_technician = 3, /obj/item/clothing/shoes/sneakers/black = 3) @@ -99,12 +100,13 @@ icon_state = "cargodrobe" product_ads = "Upgraded Assistant Style! Pick yours today!;These shorts are comfy and easy to wear, get yours now!" vend_reply = "Thank you for using the CargoDrobe!" - products = list(/obj/item/clothing/suit/hooded/wintercoat/cargo = 1, + products = list(/obj/item/clothing/suit/hooded/wintercoat/cargo = 3, /obj/item/clothing/under/rank/cargotech = 3, /obj/item/clothing/shoes/sneakers/black = 3, /obj/item/clothing/gloves/fingerless = 3, /obj/item/clothing/head/soft = 3, - /obj/item/radio/headset/headset_cargo = 1) + /obj/item/radio/headset/headset_cargo = 3) + premium = list(/obj/item/clothing/under/rank/miner = 3) refill_canister = /obj/item/vending_refill/wardrobe/cargo_wardrobe /obj/item/vending_refill/wardrobe/cargo_wardrobe @@ -122,7 +124,7 @@ /obj/item/clothing/shoes/sneakers/black = 2, /obj/item/clothing/gloves/fingerless = 2, /obj/item/clothing/head/soft/black = 2, - /obj/item/clothing/mask/bandana/skull = 1) + /obj/item/clothing/mask/bandana/skull = 2) refill_canister = /obj/item/vending_refill/wardrobe/robo_wardrobe /obj/item/vending_refill/wardrobe/robo_wardrobe @@ -130,18 +132,18 @@ /obj/machinery/vending/wardrobe/science_wardrobe name = "SciDrobe" - desc = "A simple vending machine suitable to dispense well tailored science clothing. Endorsed by Cubans." + desc = "A simple vending machine suitable to dispense well tailored science clothing. Endorsed by Space Cubans." icon_state = "scidrobe" - product_ads = "Longing for the smell of flesh plasma? Buy your science clothing now!;Made with 10% Auxetics, so you don't have to worry losing your arm!" + product_ads = "Longing for the smell of plasma burnt flesh? Buy your science clothing now!;Made with 10% Auxetics, so you don't have to worry about losing your arm!" vend_reply = "Thank you for using the SciDrobe!" - products = list(/obj/item/clothing/accessory/pocketprotector = 1, - /obj/item/storage/backpack/science = 2, - /obj/item/storage/backpack/satchel/tox = 2, - /obj/item/clothing/suit/hooded/wintercoat/science = 1, + products = list(/obj/item/clothing/accessory/pocketprotector = 3, + /obj/item/storage/backpack/science = 3, + /obj/item/storage/backpack/satchel/tox = 3, + /obj/item/clothing/suit/hooded/wintercoat/science = 3, /obj/item/clothing/under/rank/scientist = 3, /obj/item/clothing/suit/toggle/labcoat/science = 3, /obj/item/clothing/shoes/sneakers/white = 3, - /obj/item/radio/headset/headset_sci = 2, + /obj/item/radio/headset/headset_sci = 3, /obj/item/clothing/mask/gas = 3) refill_canister = /obj/item/vending_refill/wardrobe/science_wardrobe @@ -156,7 +158,7 @@ vend_reply = "Thank you for using the Hydrobe!" products = list(/obj/item/storage/backpack/botany = 2, /obj/item/storage/backpack/satchel/hyd = 2, - /obj/item/clothing/suit/hooded/wintercoat/hydro = 1, + /obj/item/clothing/suit/hooded/wintercoat/hydro = 2, /obj/item/clothing/suit/apron = 2, /obj/item/clothing/suit/apron/overalls = 3, /obj/item/clothing/under/rank/hydroponics = 3, @@ -193,9 +195,9 @@ /obj/item/radio/headset/headset_srv = 2, /obj/item/clothing/under/sl_suit = 2, /obj/item/clothing/under/rank/bartender = 2, - /obj/item/clothing/under/rank/bartender/purple = 1, + /obj/item/clothing/under/rank/bartender/purple = 2, /obj/item/clothing/accessory/waistcoat = 2, - /obj/item/clothing/suit/apron/purple_bartender = 1, + /obj/item/clothing/suit/apron/purple_bartender = 2, /obj/item/clothing/head/soft/black = 2, /obj/item/clothing/shoes/sneakers/black = 2, /obj/item/reagent_containers/glass/rag = 2, diff --git a/code/modules/zombie/items.dm b/code/modules/zombie/items.dm index 03d2ac3921..8b56ccf00d 100644 --- a/code/modules/zombie/items.dm +++ b/code/modules/zombie/items.dm @@ -31,11 +31,11 @@ return else if(isliving(target)) if(ishuman(target)) - check_infection(target, user) + try_to_zombie_infect(target) else check_feast(target, user) -/obj/item/zombie_hand/proc/check_infection(mob/living/carbon/human/target, mob/user) +/proc/try_to_zombie_infect(mob/living/carbon/human/target) CHECK_DNA_AND_SPECIES(target) if(NOZOMBIE in target.dna.species.species_traits) @@ -50,6 +50,7 @@ infection.Insert(target) + /obj/item/zombie_hand/suicide_act(mob/user) user.visible_message("[user] is ripping [user.p_their()] brains out! It looks like [user.p_theyre()] trying to commit suicide!") if(isliving(user)) diff --git a/config/config.txt b/config/config.txt index 5a8d1bb25d..7ad7db8bb3 100644 --- a/config/config.txt +++ b/config/config.txt @@ -109,6 +109,9 @@ LOG_ATTACK ## log pda messages LOG_PDA +## log telecomms messages +LOG_TELECOMMS + ## log prayers LOG_PRAYER @@ -128,6 +131,12 @@ LOG_MANIFEST ## As an example of how this could be """useful""" look towards Poly (https://twitter.com/Poly_the_Parrot) # LOG_TWITTER +## Enable logging pictures +# LOG_PICTURES + +##Log camera pictures - Must have picture logging enabled +PICTURE_LOGGING_CAMERA + ## period of time in seconds for players to be considered inactive # INACTIVITY_PERIOD 300 diff --git a/config/dbconfig.txt b/config/dbconfig.txt index 35f599261e..3a058fe563 100644 --- a/config/dbconfig.txt +++ b/config/dbconfig.txt @@ -38,5 +38,8 @@ ASYNC_QUERY_TIMEOUT 10 ## Must be less than or equal to ASYNC_QUERY_TIMEOUT BLOCKING_QUERY_TIMEOUT 5 +## The maximum number of additional threads BSQL is allowed to run at once +BSQL_THREAD_LIMIT 50 + ## Uncomment to enable verbose BSQL communication logs #BSQL_DEBUG diff --git a/config/game_options.txt b/config/game_options.txt index b8f2efdf34..b7b667d29c 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -37,13 +37,16 @@ EMOJIS RUN_DELAY 1 WALK_DELAY 4 -## The variables below affect the movement of specific mob types. -HUMAN_DELAY 0 -ROBOT_DELAY 0 -MONKEY_DELAY 0 -ALIEN_DELAY 0 -SLIME_DELAY 0 -ANIMAL_DELAY 1 +## The variables below affect the movement of specific mob types. THIS AFFECTS ALL SUBTYPES OF THE TYPE YOU CHOOSE! +## Entries completely override all subtypes. Later entries have precedence over earlier entries. +## This means if you put /mob 0 on the last entry, it will null out all changes, while if you put /mob as the first entry and +## /mob/living/carbon/human on the last entry, the last entry will override the first. +##MULTIPLICATIVE_MOVESPEED /mob/living/carbon/human 0 +##MULTIPLICATIVE_MOVESPEED /mob/living/silicon/robot 0 +##MULTIPLICATIVE_MOVESPEED /mob/living/carbon/monkey 0 +##MULTIPLICATIVE_MOVESPEED /mob/living/carbon/alien 0 +##MULTIPLICATIVE_MOVESPEED /mob/living/simple_animal/slime 0 +MULTIPLICATIVE_MOVESPEED /mob/living/simple_animal 1 ## NAMES ### diff --git a/dependencies.sh b/dependencies.sh index e286a4ed90..12fce4e866 100755 --- a/dependencies.sh +++ b/dependencies.sh @@ -7,13 +7,13 @@ #note, this also needs to be changed in the Dockerfile's initial FROM command #If someone has an idea for how to set that version within the Dockerfile itself without any other dependencies, feel free to PR it export BYOND_MAJOR=512 -export BYOND_MINOR=1427 +export BYOND_MINOR=1441 #rust_g git tag -export RUST_G_VERSION=0.3.0 +export RUST_G_VERSION=0.4.0 #bsql git tag -export BSQL_VERSION=v1.3.0.2 +export BSQL_VERSION=v1.4.0.0 #node version export NODE_VERSION=4 diff --git a/harborstation.dme b/harborstation.dme index 3c9d033158..14e9f96f6f 100644 --- a/harborstation.dme +++ b/harborstation.dme @@ -14,7 +14,6 @@ // BEGIN_INCLUDE #include "_maps\_basemap.dm" -#include "_maps\boxstation.dm" #include "_maps\Summer_Ball_Progress_V2.4.dmm" #include "_maps\underwater.dmm" #include "code\_compile_options.dm" @@ -65,6 +64,7 @@ #include "code\__DEFINES\misc.dm" #include "code\__DEFINES\mobs.dm" #include "code\__DEFINES\monkeys.dm" +#include "code\__DEFINES\movespeed_modification.dm" #include "code\__DEFINES\networks.dm" #include "code\__DEFINES\obj_flags.dm" #include "code\__DEFINES\pinpointers.dm" @@ -119,6 +119,7 @@ #include "code\__HELPERS\names.dm" #include "code\__HELPERS\priority_announce.dm" #include "code\__HELPERS\pronouns.dm" +#include "code\__HELPERS\qdel.dm" #include "code\__HELPERS\radiation.dm" #include "code\__HELPERS\radio.dm" #include "code\__HELPERS\roundend.dm" @@ -341,6 +342,7 @@ #include "code\datums\components\paintable.dm" #include "code\datums\components\rad_insulation.dm" #include "code\datums\components\radioactive.dm" +#include "code\datums\components\remote_materials.dm" #include "code\datums\components\riding.dm" #include "code\datums\components\rotation.dm" #include "code\datums\components\signal_redirect.dm" @@ -556,6 +558,7 @@ #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\igniter.dm" #include "code\game\machinery\iv_drip.dm" @@ -866,6 +869,7 @@ #include "code\game\objects\items\implants\implant_mindshield.dm" #include "code\game\objects\items\implants\implant_misc.dm" #include "code\game\objects\items\implants\implant_spell.dm" +#include "code\game\objects\items\implants\implant_stealth.dm" #include "code\game\objects\items\implants\implant_storage.dm" #include "code\game\objects\items\implants\implant_track.dm" #include "code\game\objects\items\implants\implantcase.dm" @@ -1368,8 +1372,10 @@ #include "code\modules\cargo\supplypod_beacon.dm" #include "code\modules\cargo\bounties\assistant.dm" #include "code\modules\cargo\bounties\chef.dm" +#include "code\modules\cargo\bounties\engineering.dm" #include "code\modules\cargo\bounties\item.dm" #include "code\modules\cargo\bounties\mech.dm" +#include "code\modules\cargo\bounties\mining.dm" #include "code\modules\cargo\bounties\reagent.dm" #include "code\modules\cargo\bounties\science.dm" #include "code\modules\cargo\bounties\security.dm" @@ -1684,6 +1690,7 @@ #include "code\modules\integrated_electronics\subtypes\power.dm" #include "code\modules\integrated_electronics\subtypes\reagents.dm" #include "code\modules\integrated_electronics\subtypes\smart.dm" +#include "code\modules\integrated_electronics\subtypes\text.dm" #include "code\modules\integrated_electronics\subtypes\time.dm" #include "code\modules\integrated_electronics\subtypes\trig.dm" #include "code\modules\jobs\access.dm" @@ -1739,7 +1746,6 @@ #include "code\modules\lighting\lighting_setup.dm" #include "code\modules\lighting\lighting_source.dm" #include "code\modules\lighting\lighting_turf.dm" -#include "code\modules\mapping\dmm_suite.dm" #include "code\modules\mapping\map_template.dm" #include "code\modules\mapping\mapping_helpers.dm" #include "code\modules\mapping\reader.dm" @@ -1755,6 +1761,7 @@ #include "code\modules\mining\fulton.dm" #include "code\modules\mining\machine_processing.dm" #include "code\modules\mining\machine_redemption.dm" +#include "code\modules\mining\machine_silo.dm" #include "code\modules\mining\machine_stacking.dm" #include "code\modules\mining\machine_unloading.dm" #include "code\modules\mining\machine_vending.dm" @@ -1791,6 +1798,7 @@ #include "code\modules\mob\mob_defines.dm" #include "code\modules\mob\mob_helpers.dm" #include "code\modules\mob\mob_movement.dm" +#include "code\modules\mob\mob_movespeed.dm" #include "code\modules\mob\mob_transformation_simple.dm" #include "code\modules\mob\say.dm" #include "code\modules\mob\status_procs.dm" @@ -1819,6 +1827,7 @@ #include "code\modules\mob\living\living.dm" #include "code\modules\mob\living\living_defense.dm" #include "code\modules\mob\living\living_defines.dm" +#include "code\modules\mob\living\living_movement.dm" #include "code\modules\mob\living\login.dm" #include "code\modules\mob\living\logout.dm" #include "code\modules\mob\living\say.dm" @@ -1903,6 +1912,7 @@ #include "code\modules\mob\living\carbon\human\species_types\angel.dm" #include "code\modules\mob\living\carbon\human\species_types\corporate.dm" #include "code\modules\mob\living\carbon\human\species_types\dullahan.dm" +#include "code\modules\mob\living\carbon\human\species_types\felinid.dm" #include "code\modules\mob\living\carbon\human\species_types\flypeople.dm" #include "code\modules\mob\living\carbon\human\species_types\golems.dm" #include "code\modules\mob\living\carbon\human\species_types\humans.dm" @@ -1986,6 +1996,7 @@ #include "code\modules\mob\living\simple_animal\bot\medbot.dm" #include "code\modules\mob\living\simple_animal\bot\mulebot.dm" #include "code\modules\mob\living\simple_animal\bot\secbot.dm" +#include "code\modules\mob\living\simple_animal\bot\SuperBeepsky.dm" #include "code\modules\mob\living\simple_animal\friendly\butterfly.dm" #include "code\modules\mob\living\simple_animal\friendly\cat.dm" #include "code\modules\mob\living\simple_animal\friendly\cockroach.dm" @@ -2048,6 +2059,7 @@ #include "code\modules\mob\living\simple_animal\hostile\venus_human_trap.dm" #include "code\modules\mob\living\simple_animal\hostile\wizard.dm" #include "code\modules\mob\living\simple_animal\hostile\wumborian_fugu.dm" +#include "code\modules\mob\living\simple_animal\hostile\zombie.dm" #include "code\modules\mob\living\simple_animal\hostile\bosses\boss.dm" #include "code\modules\mob\living\simple_animal\hostile\bosses\paperwizard.dm" #include "code\modules\mob\living\simple_animal\hostile\gorilla\emotes.dm" @@ -2168,8 +2180,16 @@ #include "code\modules\paperwork\paperplane.dm" #include "code\modules\paperwork\pen.dm" #include "code\modules\paperwork\photocopier.dm" -#include "code\modules\paperwork\photography.dm" #include "code\modules\paperwork\stamps.dm" +#include "code\modules\photography\_pictures.dm" +#include "code\modules\photography\camera\camera.dm" +#include "code\modules\photography\camera\camera_image_capturing.dm" +#include "code\modules\photography\camera\film.dm" +#include "code\modules\photography\camera\other.dm" +#include "code\modules\photography\camera\silicon_camera.dm" +#include "code\modules\photography\photos\album.dm" +#include "code\modules\photography\photos\frame.dm" +#include "code\modules\photography\photos\photo.dm" #include "code\modules\power\apc.dm" #include "code\modules\power\cable.dm" #include "code\modules\power\cell.dm" @@ -2311,6 +2331,7 @@ #include "code\modules\projectiles\projectile\energy\ebow.dm" #include "code\modules\projectiles\projectile\energy\misc.dm" #include "code\modules\projectiles\projectile\energy\net_snare.dm" +#include "code\modules\projectiles\projectile\energy\nuclear_particle.dm" #include "code\modules\projectiles\projectile\energy\stun.dm" #include "code\modules\projectiles\projectile\energy\tesla.dm" #include "code\modules\projectiles\projectile\magic\spellcard.dm" @@ -2432,8 +2453,11 @@ #include "code\modules\research\xenobiology\crossbreeding\stabilized.dm" #include "code\modules\ruins\lavaland_ruin_code.dm" #include "code\modules\ruins\lavalandruin_code\biodome_clown_planet.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" #include "code\modules\ruins\lavalandruin_code\surface.dm" +#include "code\modules\ruins\lavalandruin_code\syndicate_base.dm" #include "code\modules\ruins\objects_and_mobs\ash_walker_den.dm" #include "code\modules\ruins\objects_and_mobs\necropolis_gate.dm" #include "code\modules\ruins\objects_and_mobs\sin_ruins.dm" @@ -2446,6 +2470,7 @@ #include "code\modules\ruins\spaceruin_code\deepstorage.dm" #include "code\modules\ruins\spaceruin_code\DJstation.dm" #include "code\modules\ruins\spaceruin_code\listeningstation.dm" +#include "code\modules\ruins\spaceruin_code\miracle.dm" #include "code\modules\ruins\spaceruin_code\oldstation.dm" #include "code\modules\ruins\spaceruin_code\originalcontent.dm" #include "code\modules\ruins\spaceruin_code\spacehotel.dm" diff --git a/html/changelog.html b/html/changelog.html index ed05ef3c1e..085e199824 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,1587 +55,1433 @@ -->
    -

    18 July 2018

    -

    Cyberboss updated:

    +

    10 August 2018

    +

    AnturK updated:

      -
    • Deaths now lag the server less
    • -
    • Ban checks cause less lag
    • +
    • Portable flashers won't burnout from failed flashes.
    • +
    +

    Denton, Tlaltecuhtli updated:

    +
      +
    • Added cargo bounties that require cooperation with Atmospherics, Engineering and Mining.
    • +
    +

    Naksu updated:

    +
      +
    • Transformation diseases now properly check for job bans where applicable
    • +
    • Fixed a bunch of runtimes that result from transforming into a nonhuman from a human, or a noncarbon from a carbon.
    • +
    +

    SpaceManiac updated:

    +
      +
    • The map loader has been cleaned up and made more flexible.
    • +
    +

    nicbn updated:

    +
      +
    • BoxStation science changes: Circuitry lab is closer to RnD now; cannisters, portable vents, portable scrubbers, filters and mixers have been moved to Toxin Mixing Lab. There is now a firing range at the testing lab!
    + +

    08 August 2018

    Denton updated:

      -
    • RCDs can now also be loaded with reinforced glass and reinforced plasma glass sheets.
    • +
    • Added five new cargo packs: cargo supplies, circuitry starter pack, premium carpet, surgical supplies and wrapping paper.
    • +
    • Added one bag of L type blood to the blood pack crate. Added a chance for contraband crates to contain DonkSoft refill packs.
    -

    Irafas updated:

    +

    Iamgoofball updated:

      -
    • players can construct while standing on top of a directional window. (machine frames, computer frames, etc)
    • +
    • The Stealth Implant was mistakenly made nuclear operatives only due to a misunderstanding of the code. This has been fixed.
    -

    MrStonedOne updated:

    +

    Mark9013100 updated:

      -
    • synchronizing admin ranks with the database now lags the server less
    • -
    • saving stats now lags the server less
    • -
    • jobexp updating now lags the server less
    • -
    • poll creation now lags the server less.
    • +
    • Pocket fire extinguishers can now be made in the autolathe.
    -

    Tlaltecuhtli updated:

    +

    SpaceManiac updated:

      -
    • putting a cell and other not intended actions dont open the circuit window
    • +
    • The power flow control console once again allows actually modifying APCs.
    • +
    • Gas meters will now prefer to target visible pipes if they share a turf with hidden pipes.
    -

    WJohnston updated:

    +

    daklaj updated:

      -
    • Abandoned box ship space ruin consoles have been turned into something more obviously broken so people stop complaining the ship doesn't work when it's not meant to anyway.
    • -
    • Removed the extra syndie headset from the syndicate listening post space ruin so people stumbling on the ruin won't be able to ruin your channel's security as often.
    • +
    • fixed beepsky and ED-209 cuffing their target successfully even when getting disabled (EMP'd) in the process
    -

    XDTM updated:

    +

    kevinz000 updated:

      -
    • Fixed a few bugs with imaginary friends, including them not being able to hear anyone or surviving past the owner's death.
    • -
    • Imaginary friends can now move into the owner's head.
    • -
    • Imaginary friends can now choose to become invisible to the owner at will.
    • +
    • Catpeople are now a subspecies of human. Switch your character's species to "Felinid" to be one.
    • +
    • Oh yeah and they show up as felinids on health analyzers.
    -

    17 July 2018

    -

    Cyberboss updated:

    +

    07 August 2018

    +

    WJohnston updated:

      -
    • Added BSQL.dll and updated libmariadb.dll for non-blocking SQL support. See https://github.com/tgstation/BSQL for instructions on building for non-windows systems
    • +
    • Redesigned the pirate event ship to be much prettier and better fitting what it was meant to do.
    • +
    + +

    06 August 2018

    +

    Basilman updated:

    +
      +
    • Increased agent box cooldown to 10 seconds

    Denton updated:

      -
    • Sparks now emit less heat.
    • -
    • Added a storage room to Metastation engineering that both engineers and atmos techs can access.
    • +
    • Omegastation's Atmospherics lockdown button now has the proper access reqs.
    • +
    • Pubbystation's disposals conveyor belts now face the correct direction.
    • +
    • Pubby's service techfab is no longer stuck inside a wall.
    • +
    • Pubby's disposal loop is no longer broken.
    • +
    • The Lavaland seed vault chem dispenser now has upgraded stock parts.
    • +
    • Metastation: Extended protective grilles to partially cover the Supermatter cooling loop.
    -

    Naksu updated:

    +

    Epoc updated:

      -
    • Plasma decontamination can now be triggered via events
    • -
    • Reebe is no longer airless and completely broken
    • +
    • You can now show off your Attorney's Badge
    -

    Shdorsh updated:

    +

    Garen updated:

      -
    • added UI to the circuit printer. That's all
    • +
    • Fixed AddComponent(target) not working when an instance is passed rather than a path
    -

    XDTM updated:

    +

    JJRcop updated:

      -
    • Limbs no longer need to have full damage to be dismemberable, although more damage means higher dismemberment chance.
    • -
    • Damaging limbs now only counts as 75% for the mob's total health. Bleeding still applies normally.
    • -
    • Limbs that reach max damage will now be disabled until they are healed to half health.
    • -
    • Disabled limbs work similarly to missing limbs, but they can still be used to wear items or handcuffs.
    • +
    • Fixed some strange string handling in SDQL
    -

    kevinz000 updated:

    +

    Jared-Fogle updated:

      -
    • Crew pinpointers added to advanced biotechnology, printable from medical lathes.
    • -
    • AIs can now interact with smartfridges by default, but by default they will not be able to retrieve items.
    • +
    • Moths can now eat clothes.
    -

    ninjanomnom updated:

    +

    JohnGinnane updated:

      -
    • Mech equipment can be detached again. This probably also fixes any other uncaught bugs relating to objects moving out of other objects.
    • +
    • Users can now see their prayers (similar to PDA sending messages)
    - -

    16 July 2018

    -

    kevinz000 updated:

    +

    Mickyan updated:

      -
    • Integrated circuit clocks now come in 3 flavors: Nanotrasen time (round time), Station time (station time), and Bluespace time (server time, therefore not affected by lag/time dilation)
    • -
    • Integrated circuit clocks now also output a raw value for deciseconds, allowing for interesting timer constructions.
    • +
    • Drinking alcohol now improves your mood
    - -

    15 July 2018

    -

    AnturK updated:

    +

    Shdorsh updated:

      -
    • You can now use numbers in religion and deity names
    • +
    • The previously-added find-replace circuit now actually exists.
    -

    Denton updated:

    +

    Tlaltecuhtli (and then Cobby) updated:

      -
    • Bounty console circuit boards no longer construct into supply request terminals.
    • +
    • Science Bounties are now available!
    -

    Naksu updated:

    +

    WJohnston updated:

      -
    • fixed some missing args in emote procs called with named args, leading to runtimes
    • -
    • removed unnecessary processing from a few machine types
    • +
    • Rebalanced the simple animal syndies on the metastation ship to be a bit less destructive of their surroundings, and downgraded the smg guy to a pistol and upgraded the other guys to knives.
    -

    SpaceManiac updated:

    +

    Y0SH1 M4S73R updated:

      -
    • The Shuttle Manipulator admin verb works once more.
    • +
    • windoors now have NTNet support. The "open" command toggles the windoor open and closed. The "touch" command, not usable by door remotes, functions identically to walking into the windoor, opening it and then closing it after some time.
    • +
    +

    cyclowns updated:

    +
      +
    • Fusion has been reworked to be a whole lot deadlier!
    • +
    • You can now use analyzers on gas mixtures holders (canisters, pipes, turfs, etc) that have undergone fusion to see the power of the fusion reaction that occurred.
    • +
    • Several gases' fusion power and fusion's gas creation has been reworked to make its tier system more linear and less cheese-able.
    -

    14 July 2018

    -

    Naksu updated:

    +

    03 August 2018

    +

    ArcaneMusic updated:

      -
    • stamina damage is no longer softcapped by the unconsciousness trigger lowering stamina damage a little bit
    • +
    • Added a new, shoutier RoundEnd Sound.
    -

    ShizCalev updated:

    +

    Basilman updated:

      -
    • The SM is now even more deadly to "certain mobs"™
    • +
    • fixed agent box invisibility
    - -

    13 July 2018

    -

    Arithmetics plus updated:

    +

    Denton updated:

      -
    • Min circuit
    • -
    • Max circuit
    • +
    • Syndicate lavaland base: Added a grenade parts vendor and smoke machine board. The testing chamber now has a heatproof door and vents/scrubbers to replace air after testing gas grenades. Chemical/soda/beer vendors are emagged by default; the vault contains a set of valuable Syndicate documents.
    • +
    • Added a scrubber pipenet to the Lavaland mining base.
    -

    Cyberboss updated:

    +

    Garen updated:

      -
    • More interesting recipes to the pizza delivery event
    • +
    • mobs now call COMSIG_PARENT_ATTACKBY
    -

    Deepfreeze2k updated:

    +

    JJRcop updated:

      -
    • Adds 2 carbon dioxide jetpacks to the pirate ship. Also gives the captain a renamed bottle of rum in his room.
    • +
    • Deadchat can use emoji now, be sure to freak out scrying orb users.
    -

    Denton updated:

    +

    Kmc2000 updated:

      -
    • Most static ingame manuals have been replaced with ones that open relevant wiki articles. remove: Deleted the "Particle Accelerator User's Guide" manual, since it's included in the Singulo/Tesla one.
    • -
    • Machine frames no longer explode when struck by tesla arcs.
    • -
    • Locators can now be researched and printed at the security protolathe.
    • +
    • You can now attach 4 energy swords to a securiton assembly instead of a baton to create a 4 esword wielding nightmare-bot
    -

    Jared-Fogle updated:

    +

    Mickyan updated:

      -
    • Removed delay from rustle1.ogg
    • +
    • added sprites for camera when equipped or in hand
    • +
    • cameras are now equipped in the neck slot
    -

    LetterN updated:

    +

    SpaceManiac updated:

      -
    • Adds ratvar plushie and narsie plushie on chaplain vendors
    • +
    • Traps now have their examine text back.
    -

    Naksu updated:

    +

    Supermichael777 updated:

      -
    • deep-frying no longer turns certain objects like limbs invisible
    • +
    • Cigarettes now always transfer a valid amount of reagents.
    • +
    • Reagent order of operations is no longer completely insane
    -

    Time-Green updated:

    +

    WJohnston updated:

      -
    • Fixes an href exploit that lets you grab ID’s out of PDA right from another person
    • +
    • Added a gun recharger to delta's white ship and toned it down from a "luxury" frigate to just a NT frigate, it's just not made for luxury!

    XDTM updated:

      -
    • (Real) Zombies no longer die from normal means. They will instead go into crit indefinitely and regenerate until they get back up again. To kill a zombie permanently you either need to remove the tumor, cut off their head, gib them, or use more elaborate methods like a wand of death or driving them to suicide.
    • -
    • Slowed down zombie regeneration overall, since putting them in crit now no longer disables them for a full minute in average.
    • +
    • Beheading now works while in hard crit, so it can be used against zombies.
    • +
    • You can now have fakedeath without also being unconscious. Existing sources of fakedeath still cause unconsciousness.
    • +
    • Zombies and skeletons now appear as dead. Don't trust zombies on the ground!
    • +
    • You can now make Ghoul Powder with Zombie Powder and epinephrine, which causes fakedeath without uncounsciousness.
    -

    Zxaber updated:

    +

    granpawalton updated:

      -
    • MMI units inside cyborgs are no longer affected by ash storms.
    • +
    • pubby round start atmos issues resolved
    • +
    • pubby departures lounge vent is no longer belonging to brig maint
    • +
    • pipe dispenser on pirate ship

    ninjanomnom updated:

      -
    • Objects on tables that are thrown by shuttle movement should no longer do a silly spin
    • -
    • The alien pistol and the xray gun have both received a much belated buff to their radiation damage to be on par with other sources of radiation.
    • +
    • The first pod spawned had some issues with shuttle id and wouldn't move properly. This has been fixed.
    -

    12 July 2018

    -

    AnturK updated:

    +

    01 August 2018

    +

    Basilman updated:

      -
    • Nuclear rounds will now end properly on nukeop deaths if there are no other antags present.
    • +
    • Added the stealth manual to the uplink, costs 8 TC. Find it under the implant section
    -

    Denton updated:

    +

    Cobby updated:

      -
    • A new shuttle loan event has been added. Hope you like bees!
    • -
    • The pizza delivery shuttle loan event now has some of each flavor and no longer pays the station for accepting it.
    • -
    • Syndicate shuttle infiltrators now carry suppressed pistols.
    • -
    • Added a missing period to spent bullet casing and pizza shutte loan text.
    • -
    • Zealot's blindfolds now properly prevent non-cultists from using them.
    • -
    • Cultist legion corpses now wear the correct type of zealot's blindfold.
    • +
    • Drone's Law 3 has been edited to explicitly state that it's for the site of activation (aka people do not get banned for going to upgrade station as derelict drones since it's explicitly clear now). See https://tgstation13.org/phpBB/viewtopic.php?f=33&t=18844&p=429944#p429944 for why this was PR'd
    • +
    • PENLITEs are now actually spawnable in techwebs. Reminder to make sure everything is committed before PRing haha!
    -

    Time-Green updated:

    +

    Denton updated:

      -
    • An overdosing chemist filled the maintenance shafts with unorthodox pills, be wary
    • +
    • New bounties have been added for the Firefighter APLU mech, cat tails and the Cat/Liz o' Nine Tails weapons.
    • +
    • ExoNuclear mech reactors now noticably irradiate their environment.
    • +
    • Adjusted suit storage unit descriptions to mention that they can decontaminate irradiated equipment.
    -

    ninjanomnom updated:

    +

    Hate9 updated:

      -
    • Certain objects which make noise which are thrown in disposals will squeak when they hit bends in the piping. This includes clowns.
    • +
    • Added tiny-sized circuits (called Devices)
    • +
    • added new icons for the Devices
    -

    tralezab updated:

    +

    Iamgoofball updated:

      -
    • admins, you can now find martial art granting buttons in your VV dropdown.
    • +
    • Buzzkill Grenade Box Cost: 5 -> 15
    - -

    11 July 2018

    -

    Denton updated:

    +

    Shdorsh updated:

      -
    • Fixed a bug where golem shells couldn't be completed by certain brass/sandstone/titanium stacks.
    • -
    • The Spider Clan holding facility has completed minor renovations. The dojo now includes medical and surgical equipment, while the lobby has a fire extinguisher and plasmaman equipment.
    • -
    • Plasma and wooden golems no longer need to breathe, same as all other golems.
    • -
    • Fixed wrong or incomplete golem spawn info texts.
    • -
    • Added more random golem names.
    • +
    • Text replacer circuit
    -

    Irafas updated:

    +

    SpaceManiac updated:

      -
    • non-silicons can no longer use machines without standing next to them.
    • +
    • The bridge of the gulag shuttle now has a stacking machine console for ejecting sheets.
    -

    XDTM updated:

    +

    Time-Green updated:

      -
    • Automatic emotes no longer spam you saying that you can't perform them while unconscious.
    • -
    • Added a Rest button to the HUD. It allows the user to lie down or get back on their feet.
    • -
    • Getting back up now takes a second, to avoid people matrix-ing bullets.
    • +
    • You can now mount energy guns into emitters
    • +
    • portal guns no longer runtime when fired by turrets
    -

    fludd12 updated:

    +

    barbedwireqtip updated:

      -
    • You can now craft wooden barrels with 30 pieces of wood! They can hold up to 300u of reagents.
    • -
    • Putting hydroponics-grown plants into the barrel lets you ferment them for alcohol! Some give bar drinks, while others simply give plain fruit wine.
    • +
    • Adds the security guard outfit from Half-Life to the secdrobe
    -

    ninjanomnom updated:

    +

    granpawalton updated:

      -
    • Porta turret rotation on shuttles visually would not turn, this has been dealt with.
    • -
    • Decals weren't rotating properly after the recent signal refactor, a couple new procs for dealing with the signals on the parent object have been added to deal with this.
    • +
    • Removed old piping sections and replaced with Canister storage area in atmos incinerator
    • +
    • scrubber and distro pipes moved in atmos incinerator to make room for added piping
    • +
    • added filter at connector on scrubbing pipe in atmos incinerator
    • +
    • replaced vent in incinerator with scrubber in **Both** incinerators
    • +
    • mixer placed on pure loop at plasma
    • +
    • delta and pubby atmos incinerator air alarm is no longer locked at round start
    • +
    • pubby atmos incinerator now starts without atmos in it
    -

    subject217 updated:

    +

    kevinz000 updated:

      -
    • L6 SAW AP ammo now costs 9 TC per magazine, up from 6.
    • -
    • L6 SAW incendiary ammo now deals 20 damage per shot, up from 15.
    • +
    • Cameras now shoot from 1x1 to 7x7, fully customizable. Alt click on them to change the size of your photos. experimental: All photos, assuming the server host turns this feature on, will be logged to disk in round logs, with their data and path stored in a json. This allows for things like Statbus, and persistence features among other things to easily grab the data and load the photo.
    • +
    • Mappers are now able to add in photo albums and wall frames with persistence! This, obviously, requires photo logging to be turned on. If this is enabled and used, these albums and frames will save the ID of the photo(s) inside them and load it the next time they're loaded in! Like secret satchels, but for photos!
    -

    10 July 2018

    -

    Astatineguy12 updated:

    -
      -
    • You can now buy energy shields as a nuke op again
    • -
    -

    Denton updated:

    +

    30 July 2018

    +

    Anonmare updated:

      -
    • Box/Delta/Pubbystation: Nuclear explosive-shaped beerkegs have been added to maintenance areas.
    • +
    • Upload boards and AI modules, in addition to Weapon Recharger boards, are now more expensive to manufacture
    -

    Naksu updated:

    +

    Basilman updated:

      -
    • Added a new ghost verb that lets you change your ignore settings, allowing previously ignored popups to be un-ignored and notifications without an ignore button to be ignored
    • -
    • Chaplains are once again unable to acquire the inquisition ERT commander's sword, as intended. The sword has been restored to its former glory
    • +
    • fixed BM Speedwagon offsets
    -

    Supermichael777 updated:

    +

    Cobby (based off Wesoda25's idea) updated:

      -
    • Changelings are no longer prevented from entering stasis by another form of fake death.
    • +
    • Adds the PENLITE holobarrier. A holographic barrier which halts individuals with bad diseases!
    -

    Wjohnston & ninjanomnom updated:

    +

    Denton updated:

      -
    • Engine heaters and engines have had a minor touch up so they don't meld with the floor quite so much.
    • -
    • Engine heaters don't block air anymore.
    • +
    • Techweb nodes that are available to exofabs by roundstart have been moved to basic research technology.
    • +
    • Ripley APLU circuit boards are now printable by roundstart.
    • +
    • Odysseus, Gygax, Durand, H.O.N.K. and Phazon mech parts have to be researched before becoming printable (same as their circuit boards).
    • +
    • Arrivals shuttles no longer throw objects/players when docking.
    • +
    • Regular fedoras no longer spawn containing flasks.
    • +
    • Increased the range of handheld T-ray scanners.
    • +
    • Cargo bounties that request irreplaceable items have been removed.
    -

    XDTM updated:

    +

    Garen updated:

      -
    • Romerol tumors no longer zombify you if you're alive when the revive timer counts down.
    • +
    • Throwers no longer deal damage
    • +
    • Flashlight circuits are now the same strength as a normal flashlight
    • +
    • Grabber circuits are now combat circuits
    • +
    • Removed smoke circuits
    • +
    • Removed all screens larger than small
    • +
    • Ntnet circuits can no longer specify the passkey used, it instead always uses the access
    - -

    09 July 2018

    -

    Ausops updated:

    +

    Hate9 updated:

      -
    • New shuttle chair sprites.
    • +
    • Added pulse multiplexer circuits, to complete the list of data transfers.

    Jared-Fogle updated:

      -
    • Fixed russian revolvers acting like normal revolvers.
    • +
    • NanoTrasen now officially recognizes Moth Week as a holiday.
    • +
    • Temporarily removes canvases until someone figures out how to fix them.
    -

    Nabski updated:

    +

    Mickyan updated:

      -
    • Crabs have a movement state sprite
    • +
    • Social anxiety trigger range decreased. Stay out of my personal space!
    • +
    • Social anxiety no longer triggers while nobody is around but you
    -

    TerraGS updated:

    +

    WJohnston updated:

      -
    • Removed tap.ogg from multitool so getting hit by one sounds as painful as it really is.
    • +
    • Redesigned the metastation white ship as a salvage vessel.
    -

    ninjanomnom updated:

    +

    YoYoBatty updated:

      -
    • The very back-end of movement got some significant reshuffling in preparation for some future refactors. Bugs are expected.
    • +
    • SMES power terminals not actually deleting the terminal reference when by cutting the terminal itself rather than the SMES.
    • +
    • SMES now reconnect to the grid properly after construction.
    • +
    • SMES now uses wirecutter act to handle terminal deconstruction.
    -

    subject217 updated:

    +

    ninjanomnom updated:

      -
    • The Nuke Op uplink no longer lies about how much ammo a C-20r holds.
    • -
    • The L6 SAW now has a small amount of spread. It is still accurate within visual range, but it's not as effective at longer ranges.
    • +
    • Objects picked up from tables blocking throws will no longer be forever unthrowable
    -

    08 July 2018

    -

    Affurit updated:

    +

    28 July 2018

    +

    CitrusGender updated:

      -
    • Back Sprites for the Godstaffs and Scythe now exist.
    • +
    • Removed slippery component from water turf
    -

    Cruix updated:

    +

    Denton updated:

      -
    • AI detection multitools can now be toggled to provide a HUD that shows the exact viewports of AI eyes, and the location of nearby camera blind spots.
    • +
    • The Odysseus mech's movespeed has been increased.
    • +
    • Metastation: Spruced up the RnD circuitry lab; no gameplay changes.
    • +
    • Due to exemplary performance, NanoTrasen has awarded Shaft Miners with their very own bathroom, constructed at the mining station dormitories. Construction costs will be deducted from their salaries.
    -

    Floyd updated:

    +

    Mickyan updated:

      -
    • removed beauty / dirtyness
    • -
    • Mood no longer gives you hallucinations, instead makes you go into crit sooner
    • +
    • insanity static is subtler
    • +
    • neutral mood icon is now light blue
    -

    Gwolfski updated:

    +

    SpaceManiac updated:

      -
    • autoname APC
    • -
    • directional autoname APC's
    • +
    • Cyborgs and AIs can now interact with items inside them again.
    -

    Naksu updated:

    +

    Tlaltecuhtli updated:

      -
    • fixed mood component
    • +
    • Mouse traps are craftable from cardboard and a metal rod.
    -

    XDTM updated:

    +

    WJohnston updated:

      -
    • Corazone now actually stops heart attacks.
    • +
    • Syndicate and pirate simple animals should have stats that more closely resemble fighting a human in those suits, with appropriate health, sounds, and space movement limitations.
    • +
    • Pirates in space suits have more modern space suits.
    -

    cacogen updated:

    + +

    27 July 2018

    +

    ShizCalev updated:

      -
    • Gibs squelch when walked over
    • +
    • Destroying a camera will now clear it's alarm.
    -

    subject217 updated:

    +

    ninjanomnom updated:

      -
    • Five months later, wires will again make noise when pulsed or cut while hacking.
    • +
    • The cargo shuttle should move normally again
    -

    07 July 2018

    -

    Cruix updated:

    +

    26 July 2018

    +

    Iamgoofball updated:

      -
    • Advaced camera consoles now properly show camera static in the area that the eye starts
    • +
    • The shake now occurs at the same time as the movement, and it now doesn't trigger on containers or uplinks.
    -

    Denton updated:

    +

    Mickyan updated:

      -
    • Cere Station's escape shuttle has had its turbo encabulator replaced and should no longer fly through hyperspace backwards.
    • +
    • Light Step quirk now stops you from leaving footprints
    -

    Garen updated:

    +

    Naksu updated:

      -
    • sends a signal for afterattack()
    • -
    • modified all calls of afterattack() to call the parent proc
    • +
    • gas reactions no longer copy a list needlessly
    -

    Naksu updated:

    +

    SpaceManiac updated:

      -
    • constructed directional windows no longer leak atmos across them
    • -
    • setting the value of anchored for objects should be done via the setAnchored proc to properly handle things like atmos updates in one place
    • +
    • The following machines can now be tabled: all-in-one grinder, cell charger, dish drive, disk compartmentalizer, microwave, recharger, soda/booze dispenser.
    • +
    • Unanchored soda/booze dispensers can now be rotated with alt-click.
    • +
    • Machinery UIs no longer close immediately upon going out of interaction range.
    • +
    • Washing machines now wiggle slightly while running.
    • +
    • Washing machines can be unanchored if their panel is open for even more wiggle.
    -

    Spaceinaba updated:

    +

    WJohnston updated:

      -
    • Digitigrade legs no longer revert to normal on compatible outfits.
    • +
    • Return of the boxstation white ship, with a complete makeover! Box and meta no longer share the same ship.
    -

    06 July 2018

    +

    25 July 2018

    Denton updated:

      -
    • Improved supply shuttle messages and firefighting foam descs.
    • -
    • Supply shuttles will no longer spill containers on docking.
    • +
    • H.O.N.K mechs can now play more sounds from the "Sounds of HONK" panel.
    -

    Jared-Fogle updated:

    +

    JJRcop updated:

      -
    • Medical HUDs will now show an icon if the body has died recently enough to be defibbed
    • +
    • The item pick up animation tweens to the correct spot if you move
    -

    Jegub updated:

    -
      -
    • Glowcaps now have their own sprite.
    • -
    -

    MacHac updated:

    +

    MrDoomBringer updated:

      -
    • Bedsheets once again properly influence the dreams of those who sleep under them.
    • +
    • Changed "cyro" to "cryo" in a few item descriptions and flavortexts.
    - -

    05 July 2018

    -

    Cyberboss updated:

    +

    SpaceManiac updated:

      -
    • Setting "default" in maps.txt now will load that map as the first fallback when a next_map.json is missing
    • +
    • The vault now contains an ore silo where the station's minerals are stored.
    • +
    • The station's ORM, recycling, and the labor camp send materials to the silo via bluespace.
    • +
    • Protolathes, techfabs, and circuit imprinters all pull materials from the silo via bluespace.
    • +
    • Those with vault access can view mineral logs and pause or remove any machine's access, or add machines with a multitool.
    • +
    • The ORM's alloy recipes are now available in engineering and science protolathes.
    -

    Jared-Fogle updated:

    +

    Telecomms chat logging updated:

      -
    • Fixed the "Remove IV Container" verb on IV drips from showing every nearby mob
    • +
    • Added logging of telecomms chat
    • +
    • Added LOG_TELECOMMS config flag (enabled by default)
    -

    Naksu updated:

    +

    WJohnston updated:

      -
    • shuttles now move the air along with their occupants, instead of magicking up new air.
    • +
    • Redesigned deltastation's abandoned white ship into a luxury NT frigate. Oh, and there are giant spiders too.
    • +
    • Med and booze dispensers work again on lavaland's syndie base, and the circuit lab there is slightly less tiny.
    -

    deathride58 updated:

    +

    subject217 updated:

      -
    • Lone nuclear operatives now spawn as often as originally intended when the disk is immobile. Secure that fuckin' disk.
    • +
    • The M-90gl is back in the Nuke Ops uplink with rebalanced pricing.
    • +
    • The revolver cargo bounty no longer accepts double barrel shotguns and grenade launchers.
    -

    03 July 2018

    -

    Dax Dupont updated:

    +

    23 July 2018

    +

    BeeSting12 updated:

      -
    • BoH detonations now gib the user.
    • +
    • Robotics' circuit printers have been changed to science departmental circuit printers to allow science to do their job more efficiently.
    -

    Denton updated:

    +

    Cruix updated:

      -
    • Engine heaters no longer let gases pass through them.
    • -
    • The Cerestation escape shuttle is now available for purchase!
    • +
    • AI eyes will now see static immediately after jumping between cameras.
    -

    Frozenguy5 updated:

    +

    Denton updated:

      -
    • Fixes nitryl gas not applying its effects.
    • +
    • Shared engineering storage rooms have been added to Deltastation.
    • +
    • Fixed access requirements of lockdown buttons in the CE office. On some maps, these were set to the wrong department.
    • +
    • Fixed Box and Metastation's CE locker having no access requirements.
    • +
    • Deltastation: Fixed engineers having access to atmospheric technicians' storage room. Fixed engineers having no access to port bow solars (the ones at the incinerator by Atmospherics). Also fixed Minisat airlock access requirements.
    • +
    • Pubbystation: Medbay and Cargo now have a techfab instead of protolathe.
    • +
    • Charlie/Delta Station (the "old cryogenics pod" ghost role) has been improved. Survivors can now finish the singularity engine and will have more minerals available inside the Hivebot mothership. The local atmos network is connected to an air tank; fire alarms and a bathroom have been added. Keep an eye out for a defibrillator too.
    • +
    • Nuclear Operatives can now purchase Buzzkill grenades for 5TC per box of three. Those release a swarm of angry bees with random toxins.
    • +
    • Chemical grenades, empty casings and smart metal foam nades now have more detailed descriptions.
    • +
    • Added examine descriptions to the organ harvester.
    -

    MrDoomBringer updated:

    +

    Epoc updated:

      -
    • SupplyPod smites work properly once again.
    • +
    • Adds "Toggle Flashlight" to PDA context menu.
    -

    Naksu updated:

    +

    Hathkar updated:

      -
    • Fixed the signatures of several reagent procs, removing useless checks
    • -
    • drunkenness is now handled at the carbon level, allowing monkeys to experience ethanol
    • -
    • initropidil also works on carbon level, allowing syndicate operatives using the poison kit to achieve the silent assassin rating against monkeys
    • -
    • The ladders in the tear in the fabric of reality no longer spawn their endpoints when the area is loaded, but only when the tear is made accessible via a BoH bomb.
    • -
    • CentCom is no longer accessible via the space ladder in the tear.
    • -
    • The lavaland endpoint can no longer spawn completely surrounded by lava, unless it spawns on an island
    • -
    • ChangeTurf can now conditionally inherit the air of the turf it is replacing, via the CHANGETURF_INHERIT_AIR flag.
    • -
    • when ladder endpoints are created, the binary turfs that are created inherit the air of the turfs they are replacing. This means the lavaland ladder endpoint will have the lavaland airmix, instead of a vacuum.
    • -
    • navigation beacons are now properly deregistered from their Z-level list and re-registered on the correct one if moved across Z-levels by an effect such as teleportation or a BoH-induced chasm.
    • +
    • Captain's Door Remote now has vault access again.
    -

    Nirnael updated:

    +

    Mickyan updated:

      -
    • Removed an unnecessary volume_pump check
    • +
    • Deltastation: replaced blood decals in maintenance with their dried counterparts

    SpaceManiac updated:

      -
    • Backpack water tanks now work properly when wielded by drones.
    • -
    • Backpack water tank nozzles can no longer be placed inside bags of holding and chem dispensers.
    • -
    • Moving items between your hands no longer causes them to cross the floor (squeaking, lava burning).
    • -
    • Scrambled research console icons have been fixed, and will be prevented in the future.
    • +
    • RCDs can now be loaded partially by compressed matter cartridges rather than always consuming the entire cartridge.
    • +
    • Fernet Cola's effect has been restored.
    • +
    • Krokodil's addition stage two warning message has been restored.
    • +
    • The party button is back.
    -

    Zxaber updated:

    +

    WJohnston updated:

      -
    • Empty cyborg shells can now be disassembled with a wrench.
    • -
    • Using a screwdriver on an empty shell will now remove the cell, or swap it if you're holding a cell in your other hand.
    • +
    • Fixed corner decals rotating incorrectly in the small caravan freighter.
    -

    ninjanomnom updated:

    +

    XDTM updated:

      -
    • Shuttle throwing also applies to loose objects on shuttles now.
    • -
    • Closets on shuttles start anchored.
    • -
    • The throw distance of shuttle throws is marginally random, potentialy 10% further or shorter
    • -
    • Tables and racks on shuttles have been installed with inertia dampeners.
    • -
    • Some very thin barriers didn't stop mobs from being thrown by the shuttle under certain circumstances, this has been fixed.
    • +
    • Limbs disabled by stamina damage no longer appear as broken and mangled.
    - -

    02 July 2018

    -

    AnturK updated:

    +

    obscolene updated:

      -
    • non-player monkeys won't fight when stunned.
    • +
    • Curator's whip actually makes a whip sound now
    -

    Denton updated:

    + +

    21 July 2018

    +

    Jared-Fogle updated:

      -
    • Pubbystation: Fixed the QM camera console's direction.
    • -
    • Pubbystation: Used the correct aux bomb camera subtype and replaced loose tech storage boards with spawners, as is done in the rest of the map.
    • -
    • Tesla balls no longer blow up disposal outlets/delivery chutes and cameras.
    • +
    • Fixes destroyed non-human bodies cloning as humans.
    -

    Irafas updated:

    +

    WJohnston updated:

      -
    • Admin spawnable Death Ripley that comes with a version of the Death Clamp that actually inflicts damage and rips arms off.
    • +
    • Reduced the 180 rounds (6 boxes) of 9mm ammo in the deep storage bunker to 45 (3 mags). Removed one of the wt-550s but put a compatible magazine in its place for the other to use. Turned the syndicate hardsuit into a regular grey space suit.
    -

    Naksu updated:

    + +

    20 July 2018

    +

    Cobby updated:

      -
    • maxHealth is now guarded against invalid values when varediting
    • +
    • having higher sanity is no longer punished by making you enter crit faster
    • +
    • you can have 100 mood instead of 99 before it starts slowly decreasing
    • +
    • Paper doesn't give illegal tech anymore
    -

    SpaceManiac updated:

    +

    CthulhuOnIce updated:

      -
    • A single wired glass tile no longer creates unlimited light floor tiles.
    • -
    • Printing the TEG and circulator boards no longer prints the completed machinery instead.
    • +
    • Fixed 'Cybogs' in research nodes.
    -

    XDTM updated:

    +

    Denton updated:

      -
    • Nutriment Pump implants no longer require replacing the stomach.
    • +
    • Added hardsuit outfits for the Captain, HoS, and CMO. Removed old Shaft Miner (Asteroid) outfits. Gave Chief Engineer (Hardsuit) engineering scanner goggles. Added debug outfit for testing.
    • +
    • Most wardrobe vendor contents have been tweaked. CargoDrobe now has the vintage shaft miner jumpsuit available as a premium item.
    - -

    01 July 2018

    -

    Denton updated:

    +

    WJohn updated:

      -
    • To comply with space OSHA regulations, all toasters (disk compartmentalizers) have been put on tables.
    • -
    • Added a disk compartmentalizer to the seed vault Lavaland ruin.
    • +
    • Caravan ruin overall contains much less firepower, and should be harder to cheese due to placement changes and less ammunition to work with.
    • +
    • The white ship is no longer stuck to flying around the station z level. It can now fly around its own spawn's level and the derelict's level too (these sometimes will be the same level).
    -

    Nichlas0010 updated:

    +

    kevinz000 updated:

      -
    • Changelings can now greentext the extract more genomes objective.
    • +
    • Removed flightsuits
    -

    Thunder12345 updated:

    +

    zaracka updated:

      -
    • Added a colour picker component for use with circuits.
    • +
    • Visible indications of cultist status during deconversion using holy water happen more often.
    -

    30 June 2018

    -

    Dennok updated:

    +

    18 July 2018

    +

    Cyberboss updated:

      -
    • Deconstructable TEG now propertly connects to pipes.
    • -
    • Fix of inverted TEG sprite of slow turbine turning. add:Now you can flip circulator and make TEG of your dream. add:Add TEG and circulator to "Advanced Power Manipulation" techweb node.
    • +
    • Deaths now lag the server less
    • +
    • Ban checks cause less lag
    -

    MacHac updated:

    +

    Denton updated:

      -
    • Changelings can now take the Pheromone Receptors ability to hunt down other changelings.
    • +
    • RCDs can now also be loaded with reinforced glass and reinforced plasma glass sheets.
    -

    TerraGS updated:

    +

    Irafas updated:

      -
    • New icon for plastic flaps that actually looks airtight.
    • -
    • Update to plastic flaps code to use tool procs rather than attackby and removed two pointless states.
    • +
    • players can construct while standing on top of a directional window. (machine frames, computer frames, etc)
    - -

    29 June 2018

    -

    BlueNothing updated:

    +

    MrStonedOne updated:

      -
    • Cavity implants can no longer hold normal-sized combat circuits. Grabbers can now hold up to assembly size.
    • -
    • Grabbers and throwers no longer function inside of storage implants.
    • +
    • synchronizing admin ranks with the database now lags the server less
    • +
    • saving stats now lags the server less
    • +
    • jobexp updating now lags the server less
    • +
    • poll creation now lags the server less.
    -

    Denton updated:

    +

    Tlaltecuhtli updated:

      -
    • Added all-in-one tcomms machinery and an automated announcement system.
    • +
    • putting a cell and other not intended actions dont open the circuit window
    -

    Mickyan updated:

    +

    WJohnston updated:

      -
    • graffiti letters and numbers have received a makeover
    • +
    • Abandoned box ship space ruin consoles have been turned into something more obviously broken so people stop complaining the ship doesn't work when it's not meant to anyway.
    • +
    • Removed the extra syndie headset from the syndicate listening post space ruin so people stumbling on the ruin won't be able to ruin your channel's security as often.
    -

    MrDoomBringer updated:

    +

    XDTM updated:

      -
    • Disk Fridges now have sprites! Ask cobby if you're wondering why they look like toasters.
    • +
    • Fixed a few bugs with imaginary friends, including them not being able to hear anyone or surviving past the owner's death.
    • +
    • Imaginary friends can now move into the owner's head.
    • +
    • Imaginary friends can now choose to become invisible to the owner at will.
    -

    28 June 2018

    -

    Anonmare updated:

    -
      -
    • The possessed chainsword no longer makes e-swords look pathetic
    • -
    -

    Dax Dupont updated:

    +

    17 July 2018

    +

    Cyberboss updated:

      -
    • Admins can now scan circuits if they have admin AI interaction enabled.
    • -
    • some more circuit logging
    • -
    • You can now build clown borgs with a little bit of bananium and research. Praise be the honkmother.
    • -
    • New upgrade module has been added so making loot/tech web borg modules has become easier for admins/mappers/coders.
    • -
    • Unused and broken OOC metadata code has been killed.
    • +
    • Added BSQL.dll and updated libmariadb.dll for non-blocking SQL support. See https://github.com/tgstation/BSQL for instructions on building for non-windows systems

    Denton updated:

      -
    • Added a disk compartmentalizer to Omegastation's hydroponics.
    • +
    • Sparks now emit less heat.
    • +
    • Added a storage room to Metastation engineering that both engineers and atmos techs can access.
    -

    Kraso updated:

    +

    Naksu updated:

      -
    • You can no longer use a soulstone shard to tell who's a cultist.
    • +
    • Plasma decontamination can now be triggered via events
    • +
    • Reebe is no longer airless and completely broken
    -

    ShizCalev updated:

    +

    Shdorsh updated:

      -
    • The blob will no longer take over space/mining/ect upon victory.
    • +
    • added UI to the circuit printer. That's all
    - -

    27 June 2018

    -

    Cyberboss updated:

    +

    XDTM updated:

      -
    • Logs and admin messages will now appear when you are using deprecated config settings and advise on upgrades
    • +
    • Limbs no longer need to have full damage to be dismemberable, although more damage means higher dismemberment chance.
    • +
    • Damaging limbs now only counts as 75% for the mob's total health. Bleeding still applies normally.
    • +
    • Limbs that reach max damage will now be disabled until they are healed to half health.
    • +
    • Disabled limbs work similarly to missing limbs, but they can still be used to wear items or handcuffs.
    -

    Dax Dupont updated:

    +

    kevinz000 updated:

      -
    • Malf AI machine overloads now are logged/admin messaged.
    • -
    • The tree of liberty must be refreshed from time to time with the blood of patriots and tyrants. We've removed access requirements from liberation station vendors.
    • -
    • Fixes more href exploits in circuits
    • -
    • Printing premade assemblies is no longer shitcode, time remaining had to go for this.
    • -
    • Filled holes in the logging of circuits
    • +
    • Crew pinpointers added to advanced biotechnology, printable from medical lathes.
    • +
    • AIs can now interact with smartfridges by default, but by default they will not be able to retrieve items.
    -

    Denton updated:

    +

    ninjanomnom updated:

      -
    • Camera networks, monitor screens and telescreens have been standardized.
    • -
    • Motion-sensitive cameras now show a message when they trigger the alarm.
    • -
    • The Box/Meta auxillary base camera now works.
    • -
    • Bomb test site cameras now emit light, as intended.
    • -
    • Meta: Replaced the RD telescreen in the CE office with the correct one.
    • -
    • Did you know that honey has antibiotic properties?
    • +
    • Mech equipment can be detached again. This probably also fixes any other uncaught bugs relating to objects moving out of other objects.
    -

    Irafas updated:

    + +

    16 July 2018

    +

    kevinz000 updated:

      -
    • Hardsuit helmets now protect the wearer from pepperspray
    • -
    • Bucket helmets cannot have reagents transferred into them until after they are removed
    • +
    • Integrated circuit clocks now come in 3 flavors: Nanotrasen time (round time), Station time (station time), and Bluespace time (server time, therefore not affected by lag/time dilation)
    • +
    • Integrated circuit clocks now also output a raw value for deciseconds, allowing for interesting timer constructions.
    -

    MadmanMartian updated:

    + +

    15 July 2018

    +

    AnturK updated:

      -
    • Cameras that are EMPed no longer sound an alarm
    • +
    • You can now use numbers in religion and deity names
    -

    Mickyan updated:

    +

    Denton updated:

      -
    • Branca Menta won't make you starve and then kill you
    • -
    • Fernet has been moved to contraband
    • +
    • Bounty console circuit boards no longer construct into supply request terminals.

    Naksu updated:

      -
    • Removed unused effect object that could be used to spawn a list of humans
    • -
    -

    Nichlas0010 updated:

    -
      -
    • Mothpeople no longer push objects to move in 0-grav, if they can fly
    • +
    • fixed some missing args in emote procs called with named args, leading to runtimes
    • +
    • removed unnecessary processing from a few machine types

    SpaceManiac updated:

      -
    • AI static now uses visual contents and should perform better in theory.
    • -
    • Pocket protectors now work again.
    • -
    • URLs are no longer auto-linkified in character names and IC messages.
    • -
    • It is once again possible for Cargo to export mechs.
    • -
    • Deaths in the CTF arena are no longer announced to deadchat.
    • +
    • The Shuttle Manipulator admin verb works once more.
    -

    Tlaltecuhtli updated:

    + +

    14 July 2018

    +

    Naksu updated:

      -
    • tourettes doesnt stack on itself anymore
    • -
    • fixes cult shuttle message repeating
    • +
    • stamina damage is no longer softcapped by the unconsciousness trigger lowering stamina damage a little bit
    -

    Zxaber updated:

    +

    ShizCalev updated:

      -
    • Cyborgs can wear more hats now.
    • +
    • The SM is now even more deadly to "certain mobs"™
    -

    kevinz000 updated:

    + +

    13 July 2018

    +

    Arithmetics plus updated:

      -
    • R&D deconstructors can now destroy things regardless of if there's a point value or material
    • +
    • Min circuit
    • +
    • Max circuit
    -

    nichlas0010 updated:

    +

    Cyberboss updated:

      -
    • You should now receive your destroy AI objectives properly during IAA
    • +
    • More interesting recipes to the pizza delivery event
    - -

    24 June 2018

    -

    CitrusGender updated:

    +

    Deepfreeze2k updated:

      -
    • Fixed cyborgs not getting their names at round start
    • -
    • Fixed cyborgs and A.I.s being able to bypass appearance bans
    • +
    • Adds 2 carbon dioxide jetpacks to the pirate ship. Also gives the captain a renamed bottle of rum in his room.
    -

    SpaceManiac updated:

    +

    Denton updated:

      -
    • The "Save Logs" option in the chat now actually works (IE 10+ only).
    • +
    • Most static ingame manuals have been replaced with ones that open relevant wiki articles. remove: Deleted the "Particle Accelerator User's Guide" manual, since it's included in the Singulo/Tesla one.
    • +
    • Machine frames no longer explode when struck by tesla arcs.
    • +
    • Locators can now be researched and printed at the security protolathe.
    -

    Time-Green updated:

    -
      -
    • Soda is no longer intangible to the laws of physics
    • -
    -

    cinder1992 updated:

    +

    Jared-Fogle updated:

      -
    • The Captain can now go down with their station in style! Suicide animation added to the Officer's Sabre.
    • +
    • Removed delay from rustle1.ogg
    -

    kevinz000 updated:

    +

    LetterN updated:

      -
    • Cyborgs now drop keys on deconstruction/detonation
    • +
    • Adds ratvar plushie and narsie plushie on chaplain vendors
    - -

    23 June 2018

    -

    Dax Dupont updated:

    +

    Naksu updated:

      -
    • CHANGE PLACES, SHUTTLE CHAIRS HAVE BEEN CHANGED AGAIN.
    • -
    • Create antags now checks for people being on station before applying.
    • +
    • deep-frying no longer turns certain objects like limbs invisible
    -

    ExcessiveUseOfCobblestone updated:

    +

    Time-Green updated:

      -
    • Plant disks with potency genes clarify the percent is for potency scaling and not relative to max volume on examine.
    • +
    • Fixes an href exploit that lets you grab ID’s out of PDA right from another person
    -

    Kor updated:

    +

    XDTM updated:

      -
    • Bubblegum has regained his original (deadlier) move set.
    • +
    • (Real) Zombies no longer die from normal means. They will instead go into crit indefinitely and regenerate until they get back up again. To kill a zombie permanently you either need to remove the tumor, cut off their head, gib them, or use more elaborate methods like a wand of death or driving them to suicide.
    • +
    • Slowed down zombie regeneration overall, since putting them in crit now no longer disables them for a full minute in average.
    -

    SpaceManiac updated:

    +

    Zxaber updated:

      -
    • Fire extinguishers on the emergency shuttle are no longer unclickable once removed from their cabinets.
    • +
    • MMI units inside cyborgs are no longer affected by ash storms.
    -

    kevinz000 updated:

    +

    ninjanomnom updated:

      -
    • Blast cannons have been fixed and are now available for purchase by traitorous scientists for a low low price of 14TC.
    • -
    • Blast cannons take the explosive power of a TTV bomb and ejects a linear projectile that will apply what the bomb would do to a certain tile at that distance to that tile. However, this will not cause breaches, or gib mobs, unless the gods (admins) so will it. experimental: Blast cannons do not respect maxcap. (Unless the admins so will it.)
    • +
    • Objects on tables that are thrown by shuttle movement should no longer do a silly spin
    • +
    • The alien pistol and the xray gun have both received a much belated buff to their radiation damage to be on par with other sources of radiation.
    -

    21 June 2018

    -

    BlueNothing updated:

    -
      -
    • Grabbers can no longer hold circuit assemblies
    • -
    -

    CitrusGender updated:

    -
      -
    • Ruins air alarms will no longer be reported in the station tablets
    • -
    • added a clamp so you can't set a negative multiplier to create materials and create more than 50 items.
    • -
    -

    Cobby updated:

    +

    12 July 2018

    +

    AnturK updated:

      -
    • Removed Advanced Mining Scanner from roundstart voucher kits.
    • -
    • Removed Explorer Webbing from all voucher kits besides the shelter capsule pack.
    • +
    • Nuclear rounds will now end properly on nukeop deaths if there are no other antags present.

    Denton updated:

      -
    • The public booze-o-mats and autodrobes on Box/Delta/Meta now have no access requirements, as previously intended.
    • -
    • Regular and advanced health analyzers can now be researched and printed.
    • -
    -

    McDonald072 updated:

    -
      -
    • A few new circuits for dealing with atmospherics have been uploaded to your local printers.
    • -
    -

    NewSta updated:

    -
      -
    • made it easier to see from the back whether someone is occupying the shuttle chair or not.
    • -
    -

    SpaceManiac updated:

    -
      -
    • One canister is now suitable to fully stock a vending machine. Relevant cargo packs have been updated.
    • -
    • Deconstructing and reconstructing a vending machine no longer creates items from thin air.
    • -
    • Using a part replacer on a vending machine no longer empties its inventory.
    • -
    • Bluespace RPEDs can now be used to refill vending machines.
    • -
    -

    Tlaltecuhtli updated:

    -
      -
    • anomaly cores no longer tend to dust
    • -
    -

    YPOQ updated:

    -
      -
    • Watcher beams will freeze you again
    • -
    - -

    19 June 2018

    -

    Cyberboss updated:

    -
      -
    • Speaking in deadchat now shows your rank instead of ADMIN
    • -
    -

    Dax Dupont updated:

    -
      -
    • Circuit lab no longer starts with super batteries, they have been replaced with high batteries.
    • -
    • Circuit labs now start with 20 sheets of metal instead of 50/100. Plenty of materials on the station you can gather.
    • -
    • Circuit labs no longer have their own protolathe and autolathe. Science has their own lathes already.
    • -
    • There's no more entire library worth of equipment, they can go publish the books like the rest of the station, in the library. At least give the librarians something other to do than screaming about lizard porn on the radio.
    • -
    -

    Hyacinth-OR updated:

    -
      -
    • Added a pink scarf to vendomats
    • -
    -

    Irafas updated:

    -
      -
    • Players can now ctrl-click the PDA to remove the item in its pen slot
    • -
    -

    JStheguy updated:

    -
      -
    • Added the data card reader circuit, a circuit that is able to read data cards, as well as write to them.
    • -
    • Data cards are now longer inexplicably called data disks despite clearly being cards, and can be printed from the "tools" section of the integrated circuit printer.
    • -
    • Data cards no longer have a special "label card" verb and instead can have their names and descriptions changed with a pen.
    • -
    • Also, some aesthetically different variants of the data cards, because why not.
    • -
    • Data cards have new sprites, with support for coloring them via the assembly detailer.
    • +
    • A new shuttle loan event has been added. Hope you like bees!
    • +
    • The pizza delivery shuttle loan event now has some of each flavor and no longer pays the station for accepting it.
    • +
    • Syndicate shuttle infiltrators now carry suppressed pistols.
    • +
    • Added a missing period to spent bullet casing and pizza shutte loan text.
    • +
    • Zealot's blindfolds now properly prevent non-cultists from using them.
    • +
    • Cultist legion corpses now wear the correct type of zealot's blindfold.
    -

    Naksu updated:

    +

    Time-Green updated:

      -
    • Sped up atmos very slightly
    • +
    • An overdosing chemist filled the maintenance shafts with unorthodox pills, be wary

    ninjanomnom updated:

      -
    • A plush that knows too much has found its way to the bus ruin.
    • -
    - -

    18 June 2018

    -

    CitrusGender updated:

    -
      -
    • The blob core (and only the blob core) now respawns randomly on the station when the core is taken off z-level
    • -
    • Prevents the round from going into an unending state
    • -
    • Added a variable to the stationloving component for objects that can be destroyed but not moved off z-level
    • -
    -

    Denton updated:

    -
      -
    • NanoTours is proud to announce that the Lavaland beach club has been outfitted with a dance machine, state of the art bar equipment and more.
    • +
    • Certain objects which make noise which are thrown in disposals will squeak when they hit bends in the piping. This includes clowns.
    -

    SpaceManiac updated:

    +

    tralezab updated:

      -
    • It is no longer possible to repair cyborg headlamps even when their panel is closed.
    • -
    • Item fortification scrolls no longer add multiple prefixes when applied to the same item.
    • -
    • The gulag shuttle no longer moves instantly when returned via the claim console.
    • -
    • It is now possible to use the ".p" (Asay) and ".d" (Dsay) prefixes while an admin ghost.
    • +
    • admins, you can now find martial art granting buttons in your VV dropdown.
    -

    17 June 2018

    -

    Dax Dupont updated:

    -
      -
    • Syndicate and Centcom messages have been squashed together.
    • -
    • You can now send both Syndicate and Centcom headset messages. Be mindful that the button was changed to HM in the playerpanel
    • -
    • Fixed missing grilles under brig windows of the pubby shuttle.
    • -
    • For the pubby shuttle, added some food in the fridge, mostly pie slices. Also added a sleeper to the minimedbay.
    • -
    • Reworded pubby shuttle description to be more inline with the new train shuttle.
    • -
    • Chem synths overlays aren't all kinds of fucked anymore.
    • -
    • Unfucked all of the remaining chem synth code.
    • -
    • Reagents no longer have an unused var that's always set to true. Who did this?
    • -
    • You can no longer remove circuits with your mind.
    • -
    • Makes the xeno nest ruin harder to cheese.
    • -
    • Fixes the bathroom being airless in the Space Ninja anime jail.
    • -
    +

    11 July 2018

    Denton updated:

      -
    • Runtimestation: Added shuttle docking ports, a comms console, cargo bay and syndicate/centcom IDs.
    • -
    • Pirates and Syndicate salvage workers have been beefed up around the caravan ambush ruin.
    • -
    -

    Pubby updated:

    -
      -
    • PubbyStation: Fixed disposals issue in security hallway
    • +
    • Fixed a bug where golem shells couldn't be completed by certain brass/sandstone/titanium stacks.
    • +
    • The Spider Clan holding facility has completed minor renovations. The dojo now includes medical and surgical equipment, while the lobby has a fire extinguisher and plasmaman equipment.
    • +
    • Plasma and wooden golems no longer need to breathe, same as all other golems.
    • +
    • Fixed wrong or incomplete golem spawn info texts.
    • +
    • Added more random golem names.
    -

    SpaceManiac updated:

    +

    Irafas updated:

      -
    • Moving large amounts of items with bluespace launchpads no longer creates a laggy amount of sparks.
    • -
    • Unbreakable ladders are now left behind when shuttles move.
    • -
    • It is no longer possible to pull the mirages images at space transitions, and some other abstract effects.
    • -
    • PDAs and radios with unlocked uplinks no longer open their normal interface in addition to the uplink when activated.
    • -
    • Nuclear operative uplinks are no longer also radios.
    • -
    • The mining shuttle can once again fly to the aux base construction room after the base has dropped.
    • -
    • The escape pod hallways on MetaStation and DeltaStation now have air again.
    • -
    • Hyperspace ripples now remain visible until the shuttle arrives, even during extreme lag.
    • -
    • Ripples now correctly take the shape of the shuttle, rather than always being a rectangle.
    • -
    • Non-secure windoors now properly support the "One Required" access mode of airlock electronics.
    • +
    • non-silicons can no longer use machines without standing next to them.
    -

    Tlaltecuhtli updated:

    +

    XDTM updated:

      -
    • After years of protests NT decided to update the fire security standards by adding 3 (three) advanced fire extinguishers to all the new stations.
    • +
    • Automatic emotes no longer spam you saying that you can't perform them while unconscious.
    • +
    • Added a Rest button to the HUD. It allows the user to lie down or get back on their feet.
    • +
    • Getting back up now takes a second, to avoid people matrix-ing bullets.
    -

    and Fel updated:

    +

    fludd12 updated:

      -
    • New chairs are on most shuttles! Finally, you can relax in style while escaping a metal death trap.
    • +
    • You can now craft wooden barrels with 30 pieces of wood! They can hold up to 300u of reagents.
    • +
    • Putting hydroponics-grown plants into the barrel lets you ferment them for alcohol! Some give bar drinks, while others simply give plain fruit wine.
    -

    cyclowns updated:

    +

    ninjanomnom updated:

      -
    • Fusion has been re-enabled! It works similarly to before, but with some slight modification.
    • -
    • Fusion now requires huge amounts of plasma and tritium, as well as a very high thermal energy and temperature to start. There are several tiers of fusion that cause different benefits and effects.
    • -
    • The fusion power of most gases has been tweaked to allow for more interesting interactions.
    • -
    • BZ now takes N2O and plasma to create, rather than tritium and plasma.
    • -
    • Fusion no longer delivers server-crashingly large amounts of radiation and stationwide EMPs.
    • +
    • Porta turret rotation on shuttles visually would not turn, this has been dealt with.
    • +
    • Decals weren't rotating properly after the recent signal refactor, a couple new procs for dealing with the signals on the parent object have been added to deal with this.
    -

    theo2003 updated:

    +

    subject217 updated:

      -
    • Players who edited a circuit assembly can scan it as a ghost.
    • +
    • L6 SAW AP ammo now costs 9 TC per magazine, up from 6.
    • +
    • L6 SAW incendiary ammo now deals 20 damage per shot, up from 15.
    -

    15 June 2018

    -

    CitrusGender updated:

    -
      -
    • logs will now show ckeys when admin transformations are done
    • -
    -

    Cruix updated:

    -
      -
    • Item attack animations can no longer be seen over darkness or camera static.
    • -
    -

    Dax Dupont updated:

    +

    10 July 2018

    +

    Astatineguy12 updated:

      -
    • You can now send messages as CentCom through people's headsets.
    • -
    • Fixes missing cream pies in the cream pie fridge.
    • +
    • You can now buy energy shields as a nuke op again

    Denton updated:

      -
    • Omegastation: Connected the Engineering Foyer APC to the powernet.
    • -
    • Pubbystation: Connected Chemistry disposals to the pipenet and fixed Booze-O-Mat related display/access issues.
    • -
    • Syndicate stormtroopers now fire buckshot again.
    • +
    • Box/Delta/Pubbystation: Nuclear explosive-shaped beerkegs have been added to maintenance areas.

    Naksu updated:

      -
    • Pipe dispensers can no longer create pipes containing literally anything
    • -
    -

    Nichlas0010 updated:

    -
      -
    • The TEG and its circulator can now be deconstructed and rotated!
    • -
    • The TEG and its circulator now supports circulators in all directions, rather than just west/east!
    • +
    • Added a new ghost verb that lets you change your ignore settings, allowing previously ignored popups to be un-ignored and notifications without an ignore button to be ignored
    • +
    • Chaplains are once again unable to acquire the inquisition ERT commander's sword, as intended. The sword has been restored to its former glory
    -

    SpaceManiac updated:

    +

    Supermichael777 updated:

      -
    • A new OOC verb "Fit Viewport" can be used to adjust the window splitter to eliminate letterboxing around the map. It can also be set to run automatically in Preferences.
    • -
    • Refunding nuclear reinforcements while polling ghosts no longer summons the reinforcements into the error room anyways.
    • -
    • Shift-clicking turfs obscured by fog of war no longer lets you examine them.
    • -
    • It is now possible to cancel "Manipulate Organs" midway through.
    • +
    • Changelings are no longer prevented from entering stasis by another form of fake death.
    -

    Tlaltecuhtli updated:

    +

    Wjohnston & ninjanomnom updated:

      -
    • Added shoes to leather recipes
    • +
    • Engine heaters and engines have had a minor touch up so they don't meld with the floor quite so much.
    • +
    • Engine heaters don't block air anymore.
    -

    ninjanomnom updated:

    +

    XDTM updated:

      -
    • Gas overlays left over in some turf changes should no longer stick around where they shouldn't.
    • +
    • Romerol tumors no longer zombify you if you're alive when the revive timer counts down.
    -

    13 June 2018

    -

    Armhulen code, Keekenox sprites and S_____ as the ideas guy :roll_eyes: updated:

    -
      -
    • New drinks: Peppermint Patty and the Candyland Extract!!
    • -
    -

    CitrusGender updated:

    +

    09 July 2018

    +

    Ausops updated:

      -
    • checks to see if bullets are deleted if they are the ammo type and the bullet chambered.
    • +
    • New shuttle chair sprites.
    -

    Dax Dupont updated:

    +

    Jared-Fogle updated:

      -
    • It's now easier to become fat. Don't eat so much.
    • +
    • Fixed russian revolvers acting like normal revolvers.
    -

    Mickyan updated:

    +

    Nabski updated:

      -
    • Fixed pacifists being able to harm using bottles/screwdrivers
    • +
    • Crabs have a movement state sprite
    -

    SpaceManiac updated:

    +

    TerraGS updated:

      -
    • Capitalization, propriety, and plurality on turfs have been improved.
    • +
    • Removed tap.ogg from multitool so getting hit by one sounds as painful as it really is.
    -

    XDTM updated:

    +

    ninjanomnom updated:

      -
    • Coldproof mobs can now be cooled down, but are still immune to the negative effects of cold.
    • -
    • This also fixes some edge cases (freezing beams) where mobs could be cooled down and damaged despite cold resistance.
    • -
    • Virus crates now contain several bottles of randomly generated diseases with symptom levels up to 8.
    • -
    • Removed the single-symptom bottles that were included in the virus crate.
    • -
    • Androids are now immune to radiation.
    • +
    • The very back-end of movement got some significant reshuffling in preparation for some future refactors. Bugs are expected.
    -

    cacogen updated:

    +

    subject217 updated:

      -
    • You can now see what other people are eating or drinking.
    • -
    • Borg shaker can now synthesise milk, lemon juice, banana juice and coffee
    • -
    • Renamed drinks no longer revert to their original name when their reagents change
    • +
    • The Nuke Op uplink no longer lies about how much ammo a C-20r holds.
    • +
    • The L6 SAW now has a small amount of spread. It is still accurate within visual range, but it's not as effective at longer ranges.
    -

    chesse20 updated:

    + +

    08 July 2018

    +

    Affurit updated:

      -
    • Adds Exotic Corgi Crate to Cargo
    • -
    • Adds Exotic Corgi, a Corgi with a random hue applied to it
    • -
    • Adds Talking Corgi Crate, and talking Corgi
    • +
    • Back Sprites for the Godstaffs and Scythe now exist.
    - -

    12 June 2018

    -

    Dax Dupont updated:

    +

    Cruix updated:

      -
    • Botany trays don't magically refill anymore with a rped.
    • +
    • AI detection multitools can now be toggled to provide a HUD that shows the exact viewports of AI eyes, and the location of nearby camera blind spots.
    -

    SpaceManiac updated:

    +

    Floyd updated:

      -
    • Fire alarms now redden all the room's lights, and emit light themselves, rather than applying an area-wide overlay.
    • -
    • Fire alarms no longer visually conflict with radiation storms.
    • -
    • Pulling objects diagonally no longer causes them to flail about when changing directions.
    • -
    • Riders are no longer left behind if you move while pulling something that has since been anchored.
    • -
    • Lockboxes are now actually locked again.
    • -
    • Deaf people can no longer hear cyborg system error alarms.
    • -
    • Plasmamen now receive their suit and internals when entering VR.
    • -
    • Legion cores and admin revives now heal confusion.
    • +
    • removed beauty / dirtyness
    • +
    • Mood no longer gives you hallucinations, instead makes you go into crit sooner
    -

    XDTM updated:

    +

    Gwolfski updated:

      -
    • Diseases now properly lose scan invisibility if their stealth drops below the required threshold.
    • +
    • autoname APC
    • +
    • directional autoname APC's
    - -

    11 June 2018

    -

    Mickyan updated:

    +

    Naksu updated:

      -
    • Added an abandoned kitchen to Metastation maintenance
    • +
    • fixed mood component

    XDTM updated:

      -
    • Fixed anti-magic not working at all.
    • +
    • Corazone now actually stops heart attacks.
    -

    fludd12 updated:

    +

    cacogen updated:

      -
    • Stabilized gold extracts now respawn the familiar properly.
    • -
    • Stabilized gold familiars retain the proper languages even after respawning.
    • -
    • Stabilized gold familiars can be renamed and have their positions reset at will.
    • +
    • Gibs squelch when walked over
    - -

    08 June 2018

    -

    AnturK updated:

    +

    subject217 updated:

      -
    • Gravity can now go above 1g
    • +
    • Five months later, wires will again make noise when pulsed or cut while hacking.
    -

    CitrusGender updated:

    + +

    07 July 2018

    +

    Cruix updated:

      -
    • sandstone wall sprite for indestructible object
    • +
    • Advaced camera consoles now properly show camera static in the area that the eye starts

    Denton updated:

      -
    • Added a warning to the shuttle purchase menu.
    • -
    • Added missing vents to runtimestation.
    • -
    • Runtimestation: Added /debug EMP flashlight, emag, techfab and tiny fans. Replaced RCD, healing wand and sleeper with more suitable subtypes.
    • +
    • Cere Station's escape shuttle has had its turbo encabulator replaced and should no longer fly through hyperspace backwards.
    -

    MrDoomBringer updated:

    +

    Garen updated:

      -
    • Due to DonkCo's recent budget cuts, their line of toy emags are now noticably less realistic. As such, you can now examine an emag to determine if it is a toy or not.
    • +
    • sends a signal for afterattack()
    • +
    • modified all calls of afterattack() to call the parent proc

    Naksu updated:

      -
    • Temperature gun projectiles now respect armor/dodge, and will no longer freeze you if they don't hit you.
    • +
    • constructed directional windows no longer leak atmos across them
    • +
    • setting the value of anchored for objects should be done via the setAnchored proc to properly handle things like atmos updates in one place
    -

    SpaceManiac updated:

    +

    Spaceinaba updated:

      -
    • The thermal sight benefits of lantern wisps no longer disappear if you change glasses.
    • -
    • Paradox bags no longer block the middle of your screen until reconnect, and also actually work.
    • -
    • A pAI dying while in holoform no longer deletes the card, instead merely emptying it.
    • -
    • The elevators in the Snowdin away and VR missions work again.
    • -
    • Minor atmos issues in Snowdin and UO45 have been corrected.
    • +
    • Digitigrade legs no longer revert to normal on compatible outfits.
    -

    Tlaltecuhtli updated:

    + +

    06 July 2018

    +

    Denton updated:

      -
    • all spiders can make webs now
    • +
    • Improved supply shuttle messages and firefighting foam descs.
    • +
    • Supply shuttles will no longer spill containers on docking.
    -

    deathride58 updated:

    +

    Jared-Fogle updated:

      -
    • Sparks, using welding tools, using igniters, etc, will no longer cause an instant fireless inferno in small rooms.
    • -
    • The revert of the original hotspot_expose() PR has been reverted, since the reason as to why it was reverted was resolved with this change.
    • -
    • Reverted the increased rad collector tech point gain rate.
    • +
    • Medical HUDs will now show an icon if the body has died recently enough to be defibbed
    -

    fludd12 updated:

    +

    Jegub updated:

      -
    • Love potions are marginally more interesting! This same effect applies to if you are a valentine!
    • -
    • The names of extracts are now in the proper order, finally!
    • -
    • Self-sustaining extracts are in! Technically, this is a fix, but whatever.
    • -
    • Stabilized Cerulean extracts no longer vaporize items into the Aetherium.
    • -
    • Stabilized Gold extracts are now moderately more fun to use! The randomized creature persists if it is killed, and can be rerolled at will! Also, if you give the creature a sentience potion, the mind will transfer over!
    • +
    • Glowcaps now have their own sprite.
    -

    oranges updated:

    +

    MacHac updated:

      -
    • Sec now has khaki pants for tacticoolness
    • +
    • Bedsheets once again properly influence the dreams of those who sleep under them.
    -

    07 June 2018

    -

    Cruix updated:

    +

    05 July 2018

    +

    Cyberboss updated:

      -
    • Picture-in-picture objects now are no longer overlapped by other certain objects
    • +
    • Setting "default" in maps.txt now will load that map as the first fallback when a next_map.json is missing
    -

    SpaceManiac updated:

    +

    Jared-Fogle updated:

      -
    • It is now possible to access the wires of RND machines in order to repair them if they have been EMP'd.
    • +
    • Fixed the "Remove IV Container" verb on IV drips from showing every nearby mob
    -

    Tlaltecuhtli updated:

    +

    Naksu updated:

      -
    • rad collectors set to research point gen are somewhat ok now
    • +
    • shuttles now move the air along with their occupants, instead of magicking up new air.
    -

    kevinz000 updated:

    +

    deathride58 updated:

      -
    • Vehicle speed changes now happen immediately instead of on the next movement cycle
    • +
    • Lone nuclear operatives now spawn as often as originally intended when the disk is immobile. Secure that fuckin' disk.
    -

    06 June 2018

    +

    03 July 2018

    Dax Dupont updated:

      -
    • Fixes a sentience related exploit by blacklisting it in restricted uplinks.
    • +
    • BoH detonations now gib the user.

    Denton updated:

      -
    • Arcades have been stocked with preloaded tactical snack rigs.
    • -
    • Swarmers can no longer attack field generators and turret covers.
    • -
    • The Pubbystation maint bar Booze-O-Mat now shows its contents correctly.
    • +
    • Engine heaters no longer let gases pass through them.
    • +
    • The Cerestation escape shuttle is now available for purchase!
    • +
    +

    Frozenguy5 updated:

    +
      +
    • Fixes nitryl gas not applying its effects.

    MrDoomBringer updated:

      -
    • CentCom Supplypods now stun their target before landing, and won't damage the station as much
    • +
    • SupplyPod smites work properly once again.

    Naksu updated:

      -
    • moved /datum.isprocessing into datum flags
    • +
    • Fixed the signatures of several reagent procs, removing useless checks
    • +
    • drunkenness is now handled at the carbon level, allowing monkeys to experience ethanol
    • +
    • initropidil also works on carbon level, allowing syndicate operatives using the poison kit to achieve the silent assassin rating against monkeys
    • +
    • The ladders in the tear in the fabric of reality no longer spawn their endpoints when the area is loaded, but only when the tear is made accessible via a BoH bomb.
    • +
    • CentCom is no longer accessible via the space ladder in the tear.
    • +
    • The lavaland endpoint can no longer spawn completely surrounded by lava, unless it spawns on an island
    • +
    • ChangeTurf can now conditionally inherit the air of the turf it is replacing, via the CHANGETURF_INHERIT_AIR flag.
    • +
    • when ladder endpoints are created, the binary turfs that are created inherit the air of the turfs they are replacing. This means the lavaland ladder endpoint will have the lavaland airmix, instead of a vacuum.
    • +
    • navigation beacons are now properly deregistered from their Z-level list and re-registered on the correct one if moved across Z-levels by an effect such as teleportation or a BoH-induced chasm.
    • +
    +

    Nirnael updated:

    +
      +
    • Removed an unnecessary volume_pump check
    • +
    +

    SpaceManiac updated:

    +
      +
    • Backpack water tanks now work properly when wielded by drones.
    • +
    • Backpack water tank nozzles can no longer be placed inside bags of holding and chem dispensers.
    • +
    • Moving items between your hands no longer causes them to cross the floor (squeaking, lava burning).
    • +
    • Scrambled research console icons have been fixed, and will be prevented in the future.
    • +
    +

    Zxaber updated:

    +
      +
    • Empty cyborg shells can now be disassembled with a wrench.
    • +
    • Using a screwdriver on an empty shell will now remove the cell, or swap it if you're holding a cell in your other hand.
    -

    iksyp updated:

    +

    ninjanomnom updated:

      -
    • Ever since the great emotion purge of 2558, people were able to work at top efficiency, even while starving to death. This is no longer the case, Nanotrasen Scientists say.
    • -
    • Hunger slowdown only applies if mood is disabled in the config.
    • +
    • Shuttle throwing also applies to loose objects on shuttles now.
    • +
    • Closets on shuttles start anchored.
    • +
    • The throw distance of shuttle throws is marginally random, potentialy 10% further or shorter
    • +
    • Tables and racks on shuttles have been installed with inertia dampeners.
    • +
    • Some very thin barriers didn't stop mobs from being thrown by the shuttle under certain circumstances, this has been fixed.
    -

    04 June 2018

    -

    Beachsprites updated:

    +

    02 July 2018

    +

    AnturK updated:

      -
    • added directional beach sprites
    • +
    • non-player monkeys won't fight when stunned.
    -

    MrDoomBringer updated:

    +

    Denton updated:

    +
      +
    • Pubbystation: Fixed the QM camera console's direction.
    • +
    • Pubbystation: Used the correct aux bomb camera subtype and replaced loose tech storage boards with spawners, as is done in the rest of the map.
    • +
    • Tesla balls no longer blow up disposal outlets/delivery chutes and cameras.
    • +
    +

    Irafas updated:

    +
      +
    • Admin spawnable Death Ripley that comes with a version of the Death Clamp that actually inflicts damage and rips arms off.
    • +
    +

    Naksu updated:

      -
    • Central Command can now smite misbehaving crewmembers with supply pods (filled with whatever their hearts desire!)
    • +
    • maxHealth is now guarded against invalid values when varediting

    SpaceManiac updated:

      -
    • Atom initialization and icon smoothing no longer race, causing late-loading mineral turfs to have no icon.
    • -
    • Faceless persons no longer "melt their face off" in energy gun suicides.
    • -
    • The Lightning Bolt spell now works again.
    • +
    • A single wired glass tile no longer creates unlimited light floor tiles.
    • +
    • Printing the TEG and circulator boards no longer prints the completed machinery instead.
    -

    yenwodyah updated:

    +

    XDTM updated:

      -
    • A few virus threshold effects should work now
    • +
    • Nutriment Pump implants no longer require replacing the stomach.
    -

    03 June 2018

    +

    01 July 2018

    Denton updated:

      -
    • Pubbystation: Added a dual-port vent pump to the toxins burn chamber.
    • -
    • Removed most airlock_controller/incinerator related varedits and replaced them with defines/subtypes.
    • -
    • The Deltastation toxins lab has its portable scrubber, air pump and intercom back.
    • +
    • To comply with space OSHA regulations, all toasters (disk compartmentalizers) have been put on tables.
    • +
    • Added a disk compartmentalizer to the seed vault Lavaland ruin.
    -

    Naksu updated:

    +

    Nichlas0010 updated:

      -
    • comms consoles now work in transit again, and no longer work in centcom
    • -
    • removed unnecessary getFlatIcons from holocalls
    • -
    • Screwdrivers and other items with overlays now show the proper appearance of the item when attacking something with them, or when put on a tray.
    • +
    • Changelings can now greentext the extract more genomes objective.
    -

    Nichlas0010 updated:

    +

    Thunder12345 updated:

      -
    • You now can't get multiple download objectives!
    • -
    • RDs, Scientists and Roboticists can no longer get download objectives!
    • +
    • Added a colour picker component for use with circuits.
    -

    ShizCalev updated:

    + +

    30 June 2018

    +

    Dennok updated:

      -
    • Fixed cigar cases & cigarette packets taking two inventory slots
    • -
    • Fixed cigar cases showing the wrong icon for the cigars inside them.
    • -
    • Fixed cigar cases & cigarette packets stating the wrong name of the cigar/cigarette when removed via altclick.
    • -
    • Fixed items in pockets vanishing when a mob is monkeyized.
    • -
    • Fixed items in pockets vanishing when a mob is gorillized.
    • -
    • Fixed items in pockets vanishing when a mob is infected with a transformation disease.
    • -
    • Fixed items in pockets not being properly deleted when a mob goes through a recycler
    • -
    • Fixed items in pockets not being properly deleted when highlander mode is enabled.
    • -
    • Fixed exploit allowing you to remove unremovable tanks from pockets.
    • -
    • Fixed items in pockets dropping when a mob is equipped with a new outfit.
    • -
    • Fixed items in pockets not being covered in blood when equipping the psycho outfit.
    • +
    • Deconstructable TEG now propertly connects to pipes.
    • +
    • Fix of inverted TEG sprite of slow turbine turning. add:Now you can flip circulator and make TEG of your dream. add:Add TEG and circulator to "Advanced Power Manipulation" techweb node.
    -

    SpaceManiac updated:

    +

    MacHac updated:

      -
    • Switching mobs into/out of a mech (by VR, ghosting, or mindswap) no longer improperly applies the mech's cursor.
    • +
    • Changelings can now take the Pheromone Receptors ability to hunt down other changelings.
    -

    ThatLing updated:

    +

    TerraGS updated:

      -
    • PDA style now gets loaded correctly.
    • +
    • New icon for plastic flaps that actually looks airtight.
    • +
    • Update to plastic flaps code to use tool procs rather than attackby and removed two pointless states.
    -

    cyclowns updated:

    + +

    29 June 2018

    +

    BlueNothing updated:

      -
    • Fires no longer flicker back and forth like crazy
    • +
    • Cavity implants can no longer hold normal-sized combat circuits. Grabbers can now hold up to assembly size.
    • +
    • Grabbers and throwers no longer function inside of storage implants.
    -

    iskyp updated:

    +

    Denton updated:

      -
    • switched the type of the space suit on the syndicate shuttle
    • +
    • Added all-in-one tcomms machinery and an automated announcement system.
    -

    theo2003 updated:

    +

    Mickyan updated:

      -
    • roboticists have access to R&D windoors
    • -
    • fixed hydroponics tray weed light staying on when removing weeds with integrated circuits
    • +
    • graffiti letters and numbers have received a makeover
    -

    yorpan updated:

    +

    MrDoomBringer updated:

      -
    • Brain damage makes you say one more thing.
    • +
    • Disk Fridges now have sprites! Ask cobby if you're wondering why they look like toasters.
    -

    01 June 2018

    -

    Big Tobacco updated:

    +

    28 June 2018

    +

    Anonmare updated:

      -
    • Cheap lighters now come in four different shapes and Zippos can have one of four different designs, collect them all and improve our sales!
    • -
    • All existing lighter sprites have been given a face-lift and the flames are now subtly animated.
    • -
    • Cheap lighters now use a fixed list of 16 colors to pick from instead of using totally randomized colors.
    • -
    • Cigar cases have been tweaked to be a bit smaller and to have a modified design.
    • -
    • Cohiba Robusto and Havanan cigars now use separate case sprites from the generic premium cigar cases.
    • +
    • The possessed chainsword no longer makes e-swords look pathetic

    Dax Dupont updated:

      -
    • Fixed rpeds throwing stock part rating related runtimes.
    • +
    • Admins can now scan circuits if they have admin AI interaction enabled.
    • +
    • some more circuit logging
    • +
    • You can now build clown borgs with a little bit of bananium and research. Praise be the honkmother.
    • +
    • New upgrade module has been added so making loot/tech web borg modules has become easier for admins/mappers/coders.
    • +
    • Unused and broken OOC metadata code has been killed.
    -

    Naksu updated:

    +

    Denton updated:

      -
    • NODROP_1, DROPDEL_1, ABSTRACT_1 and NOBLUDGEON_1 have been moved to item_flags
    • -
    • brass handcuffs, meat hook and the chrono gun now conduct electricity.
    • +
    • Added a disk compartmentalizer to Omegastation's hydroponics.
    -

    Nichlas0010 updated:

    +

    Kraso updated:

      -
    • You can no longer use a soapstone infinitely
    • +
    • You can no longer use a soulstone shard to tell who's a cultist.
    -

    SpaceManiac updated:

    +

    ShizCalev updated:

      -
    • Moving diagonally past delivery chutes, transit tube pods, &c. no longer causes your camera to be stuck on them.
    • -
    • The base machinery type is now anchored by default.
    • -
    • Pubby's auxiliary mining base now works again.
    • -
    • Cloning no longer breaks a character's connection to their family heirloom.
    • -
    • The overlay effects of cult flooring are now on the floor plane, fixing their odd ambient occlusion appearance.
    • -
    • Beam rifle tracers no longer fall into chasms.
    • -
    • Vomiting on the same tile a second time no deletes the vomited reagents.
    • +
    • The blob will no longer take over space/mining/ect upon victory.
    -

    theo2003 updated:

    + +

    27 June 2018

    +

    Cyberboss updated:

      -
    • fixed the clockwork helmet not dropping to ground when used by non-clock cultists
    • +
    • Logs and admin messages will now appear when you are using deprecated config settings and advise on upgrades
    - -

    31 May 2018

    -

    CitrusGender updated:

    +

    Dax Dupont updated:

    +
      +
    • Malf AI machine overloads now are logged/admin messaged.
    • +
    • The tree of liberty must be refreshed from time to time with the blood of patriots and tyrants. We've removed access requirements from liberation station vendors.
    • +
    • Fixes more href exploits in circuits
    • +
    • Printing premade assemblies is no longer shitcode, time remaining had to go for this.
    • +
    • Filled holes in the logging of circuits
    • +
    +

    Denton updated:

      -
    • Flamethrowers are no longer uncraftable since they have a part that happens to be a tool.
    • -
    • Fixes cyborgs not being able to use two-handed modules while other modules are equipped.
    • +
    • Camera networks, monitor screens and telescreens have been standardized.
    • +
    • Motion-sensitive cameras now show a message when they trigger the alarm.
    • +
    • The Box/Meta auxillary base camera now works.
    • +
    • Bomb test site cameras now emit light, as intended.
    • +
    • Meta: Replaced the RD telescreen in the CE office with the correct one.
    • +
    • Did you know that honey has antibiotic properties?
    -

    CosmicScientist updated:

    +

    Irafas updated:

      -
    • Can't make drones anymore
    • +
    • Hardsuit helmets now protect the wearer from pepperspray
    • +
    • Bucket helmets cannot have reagents transferred into them until after they are removed
    -

    Cruix updated:

    +

    MadmanMartian updated:

      -
    • AIs now have an experimental multi-camera mode that allows them to view up to six map areas at the same time, accessible through two new buttons on their HUD.
    • +
    • Cameras that are EMPed no longer sound an alarm
    -

    Cyberboss updated:

    +

    Mickyan updated:

      -
    • The limit of monkey's spawned via monkey cubes is now configurable
    • +
    • Branca Menta won't make you starve and then kill you
    • +
    • Fernet has been moved to contraband
    -

    Dax Dupont updated:

    +

    Naksu updated:

      -
    • Fixes the wrong tiles in Syndicate VR trainer and uses different tiny fans.
    • -
    • Access didn't append to VR IDs
    • +
    • Removed unused effect object that could be used to spawn a list of humans
    -

    Firecage updated:

    +

    Nichlas0010 updated:

      -
    • The mech fabricator can now print two new janiborg upgrades. Advanced Mop and Trash Bag of holding. These two upgrades uses the advanced robotics node.
    • +
    • Mothpeople no longer push objects to move in 0-grav, if they can fly

    SpaceManiac updated:

      -
    • Changing UI Style preference now takes effect immediately rather than next round.
    • -
    • Mindswapping with someone no longer gives you their UI style.
    • -
    • The destructive analyzer can once again be used to reveal nodes.
    • -
    • Some references to "deconstructive analyzer" have been updated to "destructive".
    • -
    • Hulks and catpeople now show "Human-derived mutant" under "Species" when health scanned.
    • -
    • Cyborg inventory slots once again unhighlight when a module is stowed.
    • +
    • AI static now uses visual contents and should perform better in theory.
    • +
    • Pocket protectors now work again.
    • +
    • URLs are no longer auto-linkified in character names and IC messages.
    • +
    • It is once again possible for Cargo to export mechs.
    • +
    • Deaths in the CTF arena are no longer announced to deadchat.
    • +
    +

    Tlaltecuhtli updated:

    +
      +
    • tourettes doesnt stack on itself anymore
    • +
    • fixes cult shuttle message repeating
    -

    deathride58 updated:

    +

    Zxaber updated:

      -
    • Things that are capable of igniting plasma fires will now generate heat if there's no plasma to ignite. Building a bonfire inside the station without taking safety precautions is now a bad idea.
    • +
    • Cyborgs can wear more hats now.

    kevinz000 updated:

      -
    • Plasma specific heat is 500J/K*unit, everything else is 200
    • +
    • R&D deconstructors can now destroy things regardless of if there's a point value or material
    • +
    +

    nichlas0010 updated:

    +
      +
    • You should now receive your destroy AI objectives properly during IAA
    • +
    + +

    24 June 2018

    +

    CitrusGender updated:

    +
      +
    • Fixed cyborgs not getting their names at round start
    • +
    • Fixed cyborgs and A.I.s being able to bypass appearance bans
    • +
    +

    SpaceManiac updated:

    +
      +
    • The "Save Logs" option in the chat now actually works (IE 10+ only).
    -

    zaracka updated:

    +

    Time-Green updated:

      -
    • The Spirit Realm rune no longer spawns a braindead cult ghost when attempting to summon one after a player reaches the limit.
    • +
    • Soda is no longer intangible to the laws of physics
    - -

    29 May 2018

    -

    Dennok updated:

    +

    cinder1992 updated:

      -
    • Collectors show their real produced power and stored power when examined
    • +
    • The Captain can now go down with their station in style! Suicide animation added to the Officer's Sabre.
    -

    Naksu updated:

    +

    kevinz000 updated:

      -
    • removed some unneeded typecaches
    • +
    • Cyborgs now drop keys on deconstruction/detonation
    -

    28 May 2018

    -

    CitrusGender updated:

    +

    23 June 2018

    +

    Dax Dupont updated:

      -
    • Kills you if you're under 0% blood and above -9999% blood level (shouldn't be possible through normal means to be below that.)
    • -
    • Stops bloodloss trait from happening if your race contains the NO_BLOOD
    • -
    • added a check to see if the preferred race is human when the name doesn't have a space
    • +
    • CHANGE PLACES, SHUTTLE CHAIRS HAVE BEEN CHANGED AGAIN.
    • +
    • Create antags now checks for people being on station before applying.
    -

    Dennok updated:

    +

    ExcessiveUseOfCobblestone updated:

      -
    • Fixed a laser reflections from reflectors.
    • +
    • Plant disks with potency genes clarify the percent is for potency scaling and not relative to max volume on examine.
    -

    Denton updated:

    +

    Kor updated:

      -
    • Deltastation's firing range has been decommisioned and replaced with a brand new toxins burn chamber.
    • -
    • Delta toxins disposals are now actually connected to the disposals loop. Toxins storage has a fire alarm too.
    • -
    • The shutter buttons of Pubbystation's mechbay now check for access.
    • +
    • Bubblegum has regained his original (deadlier) move set.

    SpaceManiac updated:

      -
    • The robustness of the Super Secret Room has been increased.
    • -
    • Observers can no longer move the action button toggle or change the ambient occlusion setting of their targets.
    • -
    • The emergency space suit safes in escape pods are no longer always unlocked.
    • +
    • Fire extinguishers on the emergency shuttle are no longer unclickable once removed from their cabinets.
    -

    Tlaltecuhtli updated:

    +

    kevinz000 updated:

      -
    • apiaries from cargo start unwrenched
    • +
    • Blast cannons have been fixed and are now available for purchase by traitorous scientists for a low low price of 14TC.
    • +
    • Blast cannons take the explosive power of a TTV bomb and ejects a linear projectile that will apply what the bomb would do to a certain tile at that distance to that tile. However, this will not cause breaches, or gib mobs, unless the gods (admins) so will it. experimental: Blast cannons do not respect maxcap. (Unless the admins so will it.)
    -

    27 May 2018

    -

    Armhulen, and Keekenox updated:

    +

    21 June 2018

    +

    BlueNothing updated:

      -
    • Chaplain now gets custom armor too! Order it from the beacon in your locker.
    • +
    • Grabbers can no longer hold circuit assemblies
    -

    Cobby updated:

    +

    CitrusGender updated:

      -
    • Several of the recent drinks added have now been given effects!
    • -
    • Alexander: Conquer the world... or just the station with this drink! If you have a shield, it will increase the block chance by 10 percent! Careful not to drop it in battle though....
    • -
    • Between The Sheets: Save the pillow talk for next shift, having this in your system while you're asleep will slowly heal you!
    • -
    • Menthol: Prevents coughing. Good for a cold or if the Chaplain gets his hands on a smoke book!
    • -
    • Descriptions have been edited so that if you view these under a chem master they will tell you the effect.
    • -
    • Decals are the exception to the recent removal of effects in Chameleon Projectors.
    • +
    • Ruins air alarms will no longer be reported in the station tablets
    • +
    • added a clamp so you can't set a negative multiplier to create materials and create more than 50 items.
    -

    Dax Dupont updated:

    +

    Cobby updated:

      -
    • Did you know istype doesn't work on paths even though they are mostly the same? Yeah I didn't either. Experimentor shouldn't shit out TB nades anymore.
    • -
    • Fixes item reactions for relics as well.
    • -
    • Adds better messaging
    • -
    • Fixes summons happening on away missions.
    • +
    • Removed Advanced Mining Scanner from roundstart voucher kits.
    • +
    • Removed Explorer Webbing from all voucher kits besides the shelter capsule pack.
    -

    GuyonBroadway updated:

    +

    Denton updated:

      -
    • Adds gloves of the north star to the traitor uplink. Wearing these gloves lets you punch people five times faster than normal.
    • -
    • Sprites for the gloves courtesy of Notamaniac
    • +
    • The public booze-o-mats and autodrobes on Box/Delta/Meta now have no access requirements, as previously intended.
    • +
    • Regular and advanced health analyzers can now be researched and printed.
    -

    Mickyan updated:

    +

    McDonald072 updated:

      -
    • New trait: Drunken Resilience. You may be a drunken wreck but at least you're healthy. If alcohol poisoning doesn't get you, that is!
    • +
    • A few new circuits for dealing with atmospherics have been uploaded to your local printers.
    -

    Naksu updated:

    +

    NewSta updated:

      -
    • Nuclear explosive-shaped beerkegs found on metastation can now be triggered with the nuclear disk and the syndicate's legacy nuclear code for a foamy surprise
    • +
    • made it easier to see from the back whether someone is occupying the shuttle chair or not.

    SpaceManiac updated:

      -
    • Unwrenching and re-wrenching pre-mapped atmos components no longer turns them on automatically.
    • +
    • One canister is now suitable to fully stock a vending machine. Relevant cargo packs have been updated.
    • +
    • Deconstructing and reconstructing a vending machine no longer creates items from thin air.
    • +
    • Using a part replacer on a vending machine no longer empties its inventory.
    • +
    • Bluespace RPEDs can now be used to refill vending machines.
    -

    steamport updated:

    +

    Tlaltecuhtli updated:

      -
    • Borgs/AIs can now toggle rad collectors
    • +
    • anomaly cores no longer tend to dust
    - -

    26 May 2018

    -

    Dax Dupont updated:

    +

    YPOQ updated:

      -
    • Experimentor no longer shits out primed TB nades.
    • +
    • Watcher beams will freeze you again
    -

    Garen updated:

    + +

    19 June 2018

    +

    Cyberboss updated:

      -
    • Added a cell charger to the circuitry lab on all stations.
    • -
    • Added a circuitry lab to the syndicate lavaland base.
    • -
    • Modified the meta station circuitry lab.
    • +
    • Speaking in deadchat now shows your rank instead of ADMIN
    -

    Iamgoofball updated:

    +

    Dax Dupont updated:

      -
    • Humans require ice cream. Eat the ice cream.
    • +
    • Circuit lab no longer starts with super batteries, they have been replaced with high batteries.
    • +
    • Circuit labs now start with 20 sheets of metal instead of 50/100. Plenty of materials on the station you can gather.
    • +
    • Circuit labs no longer have their own protolathe and autolathe. Science has their own lathes already.
    • +
    • There's no more entire library worth of equipment, they can go publish the books like the rest of the station, in the library. At least give the librarians something other to do than screaming about lizard porn on the radio.
    -

    Kor updated:

    +

    Hyacinth-OR updated:

      -
    • Bag of Holding detonations have been significantly reworked.
    • +
    • Added a pink scarf to vendomats
    -

    Robustin with cat earrs updated:

    +

    Irafas updated:

      -
    • Gun overlays should be way less laggy now. remove: Chameleon guns are completely removed since they crash the server, were already made unavailable, and are the worst shitcode I've ever seen in my life.
    • +
    • Players can now ctrl-click the PDA to remove the item in its pen slot
    -

    SpaceManiac updated:

    +

    JStheguy updated:

      -
    • Clicking on the viewport to focus it no longer leaves the input bar red.
    • -
    • Create Object will no longer force objects with special directional logic to be facing south by default.
    • -
    • Running diagonally into space now properly continues the diagonal movement in zero-gravity.
    • +
    • Added the data card reader circuit, a circuit that is able to read data cards, as well as write to them.
    • +
    • Data cards are now longer inexplicably called data disks despite clearly being cards, and can be printed from the "tools" section of the integrated circuit printer.
    • +
    • Data cards no longer have a special "label card" verb and instead can have their names and descriptions changed with a pen.
    • +
    • Also, some aesthetically different variants of the data cards, because why not.
    • +
    • Data cards have new sprites, with support for coloring them via the assembly detailer.
    - -

    25 May 2018

    -

    Astatineguy12 updated:

    +

    Naksu updated:

      -
    • The mime blockade spell now shows up under the right tab
    • +
    • Sped up atmos very slightly
    -

    Cruix updated:

    +

    ninjanomnom updated:

      -
    • Added a button to chameleon items to change your entire chameleon outfit to the standard outfit of a selected job.
    • +
    • A plush that knows too much has found its way to the bus ruin.
    -

    Dax Dupont updated:

    + +

    18 June 2018

    +

    CitrusGender updated:

      -
    • Murderdome now has a telecomm system, so you can taunt your enemies better.
    • -
    • Snowdin has come back, as VR!
    • -
    • Nanotrasen Tactical Bureau has discovered a Syndicate VR Training program on their last raid. It seems to be based on an old CentCom design...
    • -
    • Restricted variant of the uplink. Will allow admins and such to spawn uplinks in remote arenas or for events that aren't as destructive and can't communicate with other Zs.
    • -
    • Extends same Z level check to monitor and bugging operations too for camera bug.
    • -
    • VR sleepers now show the stat of the VR avatar instead of the user as intended.
    • -
    • Makes it throw a stack trace when you ghostize in VR.
    • -
    • It will now delete the body if it's unconscious if you try to reconnect, to speed up reconnection.
    • -
    • Emagged sleepers will now display a notification on the UI, and make you slightly dizzy after a while.
    • -
    • More chemicals can be found when vents get clogged.
    • -
    • Fixes accidental empty ahelp replies.
    • +
    • The blob core (and only the blob core) now respawns randomly on the station when the core is taken off z-level
    • +
    • Prevents the round from going into an unending state
    • +
    • Added a variable to the stationloving component for objects that can be destroyed but not moved off z-level

    Denton updated:

      -
    • Departmental wardrobe vendors have been added to all maps.
    • -
    • Sorted cargo packs (wardrobe refills//alphabetically) and mining vendor items (by price), again.
    • -
    • Navbeacon access requirements have been fixed: Now you need either Engineering or Robotics access, but not both at the same time.
    • +
    • NanoTours is proud to announce that the Lavaland beach club has been outfitted with a dance machine, state of the art bar equipment and more.
    -

    Garen updated:

    +

    SpaceManiac updated:

      -
    • Removed circuitry save files saving whether or not the assembly is open.
    • -
    • Adds messages for when you successfully use a sensor or scanner circuit.
    • -
    • Fixed circuit printers printing advanced assemblies from save files despite not being upgraded.
    • -
    • Fixed circuit printers printing circuits into assemblies that wouldn't normally be able to hold them.
    • -
    • Fixed circuit assemblies taking damage when using objects with the help intent.
    • +
    • It is no longer possible to repair cyborg headlamps even when their panel is closed.
    • +
    • Item fortification scrolls no longer add multiple prefixes when applied to the same item.
    • +
    • The gulag shuttle no longer moves instantly when returned via the claim console.
    • +
    • It is now possible to use the ".p" (Asay) and ".d" (Dsay) prefixes while an admin ghost.
    -

    Mickyan updated:

    + +

    17 June 2018

    +

    Dax Dupont updated:

      -
    • fixed typo in bronze girder construction
    • +
    • Syndicate and Centcom messages have been squashed together.
    • +
    • You can now send both Syndicate and Centcom headset messages. Be mindful that the button was changed to HM in the playerpanel
    • +
    • Fixed missing grilles under brig windows of the pubby shuttle.
    • +
    • For the pubby shuttle, added some food in the fridge, mostly pie slices. Also added a sleeper to the minimedbay.
    • +
    • Reworded pubby shuttle description to be more inline with the new train shuttle.
    • +
    • Chem synths overlays aren't all kinds of fucked anymore.
    • +
    • Unfucked all of the remaining chem synth code.
    • +
    • Reagents no longer have an unused var that's always set to true. Who did this?
    • +
    • You can no longer remove circuits with your mind.
    • +
    • Makes the xeno nest ruin harder to cheese.
    • +
    • Fixes the bathroom being airless in the Space Ninja anime jail.
    -

    MrDoomBringer updated:

    +

    Denton updated:

      -
    • Cargo now has access to Supplypod Beacons! Use these to call down supplypods with frightening accuracy!
    • -
    • the VR sleeper action button has a sprite now
    • +
    • Runtimestation: Added shuttle docking ports, a comms console, cargo bay and syndicate/centcom IDs.
    • +
    • Pirates and Syndicate salvage workers have been beefed up around the caravan ambush ruin.
    -

    Naksu updated:

    +

    Pubby updated:

      -
    • Replaced initialized and admin_spawned vars with flags.
    • -
    • changed the shockedby list on doors to be only initialized when needed.
    • -
    • Chameleon projector can no longer scan (often temporary) visual effects like projectiles, flashes and the masked appearance of another chameleon projector user
    • -
    • Drones can no longer see a static overlay over invisible revenants
    • -
    • adjusted default antag rep points to grant every job the same amount of points per round, except for assistant which gets 30% less
    • +
    • PubbyStation: Fixed disposals issue in security hallway

    SpaceManiac updated:

      -
    • Non-harmfully placing someone who is resting on a table no longer makes them get up.
    • -
    • The disco machine no longer lags the chat by spamming "You are now resting!" messages.
    • -
    • The green overlay indicating where a map template will be placed is no longer invisible on space turfs.
    • -
    • CentCom is no longer self-looping, fixing the ability to see or get into certain areas after escaping to space.
    • -
    • The destructive analyzer no longer consumes entire stacks to give the benefit of one sheet.
    • -
    • Xeno weeds and floors under diagonal walls are now on the correct plane, fixing odd ambient occlusion appearances.
    • -
    • Inserting materials into protolathes with telekinesis is now possible.
    • -
    • Telekinesis no longer teleports items removed from deep fryers, constructed sandbags, and leftover materials not inserted into lathes.
    • -
    • Telekinetic sparkles now appear in the correct place when clicking on a turf and when clicking in the fog of war in widescreen.
    • -
    • Telekinetically adjusting power tools no longer causes them to exit the universe.
    • -
    • Examining a telekinetic grab in-hand will now examine the grabbed object.
    • -
    • Frost spiders now correctly inject frost oil on bite.
    • -
    -

    yorii updated:

    -
      -
    • Fixed the smartfridges to be in line with all other machines and puts the released item in your hand.
    • +
    • Moving large amounts of items with bluespace launchpads no longer creates a laggy amount of sparks.
    • +
    • Unbreakable ladders are now left behind when shuttles move.
    • +
    • It is no longer possible to pull the mirages images at space transitions, and some other abstract effects.
    • +
    • PDAs and radios with unlocked uplinks no longer open their normal interface in addition to the uplink when activated.
    • +
    • Nuclear operative uplinks are no longer also radios.
    • +
    • The mining shuttle can once again fly to the aux base construction room after the base has dropped.
    • +
    • The escape pod hallways on MetaStation and DeltaStation now have air again.
    • +
    • Hyperspace ripples now remain visible until the shuttle arrives, even during extreme lag.
    • +
    • Ripples now correctly take the shape of the shuttle, rather than always being a rectangle.
    • +
    • Non-secure windoors now properly support the "One Required" access mode of airlock electronics.
    - -

    23 May 2018

    -

    ShizCalev updated:

    +

    Tlaltecuhtli updated:

      -
    • Fixed a runtime with the gulag teleporter that could cause the process to fail if you removed the ID.
    • -
    • Not setting the goal of a prisoner's ID when teleporting them will now set the ID's goal to the default value (200 points at the time of this change.)
    • +
    • After years of protests NT decided to update the fire security standards by adding 3 (three) advanced fire extinguishers to all the new stations.
    -

    SpaceManiac updated:

    +

    and Fel updated:

      -
    • Flipping and then rotating trinary pipe fittings no longer causes their icon to mismatch what they will become when wrenched.
    • -
    • RPD tooltips for flippable trinary components have been corrected.
    • -
    • Entertainment monitors now view the real Thunderdome rather than the template.
    • +
    • New chairs are on most shuttles! Finally, you can relax in style while escaping a metal death trap.

    cyclowns updated:

      -
    • Analyzers can now scan all kinds of atmospheric machinery - unary, binary, ternary, quaternary, you name it. This means stuff like gas pumps, gas mixers, vents and so forth can be analyzed.
    • -
    • Analyzers now show temperature in kelvin as well as celsius.
    • -
    • Analyzers now show total mole count, volume, and mole count of all gases.
    • -
    • Analyzers show everything at slightly higher degrees of precision.
    • +
    • Fusion has been re-enabled! It works similarly to before, but with some slight modification.
    • +
    • Fusion now requires huge amounts of plasma and tritium, as well as a very high thermal energy and temperature to start. There are several tiers of fusion that cause different benefits and effects.
    • +
    • The fusion power of most gases has been tweaked to allow for more interesting interactions.
    • +
    • BZ now takes N2O and plasma to create, rather than tritium and plasma.
    • +
    • Fusion no longer delivers server-crashingly large amounts of radiation and stationwide EMPs.
    -

    imsxz updated:

    +

    theo2003 updated:

      -
    • Using mayhem bottles and going under their effects is now logged.
    • +
    • Players who edited a circuit assembly can scan it as a ghost.
    -

    kevinz000 updated:

    + +

    15 June 2018

    +

    CitrusGender updated:

      -
    • Any anomaly core can now be deconstructed for a one time boost of 10k points in the deconstructive analyzer.
    • +
    • logs will now show ckeys when admin transformations are done
    - -

    22 May 2018

    -

    Cyberboss updated:

    +

    Cruix updated:

      -
    • You can now view your last round end report window with the "Your last round" verb in the OOC tab
    • +
    • Item attack animations can no longer be seen over darkness or camera static.

    Dax Dupont updated:

      -
    • The BoH dialog now has Abort instead of Proceed as an default option.
    • -
    • Fixes race condition caused by exiting the body while dying in VR.
    • +
    • You can now send messages as CentCom through people's headsets.
    • +
    • Fixes missing cream pies in the cream pie fridge.

    Denton updated:

      -
    • Skewium is much less likely to appear during the Clogged Vents event.
    • -
    -

    Firecage updated:

    -
      -
    • Replaces wardrobe lockers on Box with Wardrobe Vending Machine.
    • -
    -

    Kor updated:

    -
      -
    • Engineering can now create anomaly neutralizer devices, capable of instantly neutralizing the short lived anomalies created by the supermatter engine.
    • -
    • The Quartermaster and HoP can now access the vault so they can use the bank machine.
    • -
    -

    Mickyan updated:

    -
      -
    • Pacifists can now use harm intent for actions that require it (but still can't harm!)
    • +
    • Omegastation: Connected the Engineering Foyer APC to the powernet.
    • +
    • Pubbystation: Connected Chemistry disposals to the pipenet and fixed Booze-O-Mat related display/access issues.
    • +
    • Syndicate stormtroopers now fire buckshot again.

    Naksu updated:

      -
    • Added EMP protection component, replaced various bespoke ways things handled EMP proofness
    • +
    • Pipe dispensers can no longer create pipes containing literally anything

    Nichlas0010 updated:

      -
    • you now feel nauseated instead of nauseous
    • -
    • Comms consoles won't update while viewing messages
    • +
    • The TEG and its circulator can now be deconstructed and rotated!
    • +
    • The TEG and its circulator now supports circulators in all directions, rather than just west/east!

    SpaceManiac updated:

      -
    • Pipe icons in the RPD now show properly in older versions of IE.
    • -
    • Family heirlooms which can fit in pockets will now spawn there.
    • -
    • Family heirlooms which only fit in the backpack now show the backpack at roundstart.
    • -
    • Family heirlooms which do not fit in the backpack are no longer gone forever.
    • -
    • Mindswapping with someone else no longer forces ambient occlusion on.
    • -
    • IRV polls now use the same version of jQuery as everything else.
    • -
    • Hydroponics trays can no longer be deconstructed with their panels closed or unanchored while irrigated.
    • -
    • Frames for machines which do not require being anchored can now be un/anchored after the circuit has been added.
    • -
    • Removing an ID from a PDA in a backpack no longer hides the ID until something else updates.
    • -
    • Opening and closing airlocks repeatedly no longer stacks queued autocloses.
    • -
    • Admin AI interaction now works properly on firelocks.
    • -
    • Fix "Your the wormhole jaunter" when a wormhole jaunter saves you from a chasm.
    • -
    -

    Wilchen updated:

    -
      -
    • Removed box of firing pins from rd's locker
    • -
    -

    armhulen updated:

    -
      -
    • chameleon guns are disabled for breaking the server
    • -
    -

    kevinz000 updated:

    -
      -
    • Field generators are once again operable by adjacent cyborgs.
    • -
    • Digital valves are once again operable by silicons.
    • -
    • Chasms no longer drop mobs buckled to undroppable mobs or objects.
    • -
    -

    resistor updated:

    -
      -
    • Added circuit labels! You can now customize the description of your assemblies.
    • +
    • A new OOC verb "Fit Viewport" can be used to adjust the window splitter to eliminate letterboxing around the map. It can also be set to run automatically in Preferences.
    • +
    • Refunding nuclear reinforcements while polling ghosts no longer summons the reinforcements into the error room anyways.
    • +
    • Shift-clicking turfs obscured by fog of war no longer lets you examine them.
    • +
    • It is now possible to cancel "Manipulate Organs" midway through.
    - -

    20 May 2018

    -

    Pubby updated:

    +

    Tlaltecuhtli updated:

      -
    • Cargo bounties from Nanotrasen. Earn cargo points by completing fetch quests. remove: Several cargo exports have been reduced or merged into cargo bounties.
    • +
    • Added shoes to leather recipes
    -

    XDTM updated:

    +

    ninjanomnom updated:

      -
    • Added a new lavaland loot item: Memento Mori. A necklace which has the power to prevent death, but will turn you into dust if removed.
    • +
    • Gas overlays left over in some turf changes should no longer stick around where they shouldn't.
    -

    19 May 2018

    -

    Alexch2 updated:

    +

    13 June 2018

    +

    Armhulen code, Keekenox sprites and S_____ as the ideas guy :roll_eyes: updated:

      -
    • Fixes tons of typos related to integrated circuits.
    • -
    • Re-writes the descriptions of a few parts of integrated circuits.
    • +
    • New drinks: Peppermint Patty and the Candyland Extract!!
    -

    Astatineguy12 updated:

    +

    CitrusGender updated:

      -
    • The experimentor is less likely to produce food when it transforms an item
    • -
    • The experimentor no longer breaks when the toxic waste malfunction occurs multiple times and isn't cleaned up
    • -
    • The experimentor irridiate function actually chooses what item to make properly rather than picking from the start of the list
    • +
    • checks to see if bullets are deleted if they are the ammo type and the bullet chambered.

    Dax Dupont updated:

      -
    • Mulligan didn't work on lizards and other mutants. Now it does.
    • -
    • Foam no longer gives infinite metal
    • -
    -

    Denton updated:

    -
      -
    • Loose silver/gold/solar panel crates have been replaced with "proper" crates.
    • -
    • There are rumors of the Tiger Cooperative adding a "special little something" to some of their bioterror kits.
    • -
    -

    Iamgoofball updated:

    -
      -
    • Lipolicide now only does damage if you're starving.
    • +
    • It's now easier to become fat. Don't eat so much.

    Mickyan updated:

      -
    • Drinking too much Gargle Blaster, Nuka Cola or Neurotoxin no longer breaks time and space.
    • +
    • Fixed pacifists being able to harm using bottles/screwdrivers
    -

    Nichlas0010 updated:

    +

    SpaceManiac updated:

      -
    • Reseach Director Traitors can no longer receive an objective to steal the Hand Teleporter
    • +
    • Capitalization, propriety, and plurality on turfs have been improved.
    -

    ShizCalev updated:

    +

    XDTM updated:

      -
    • Fixed mobs immune to radiation being killed by HIGH bursts of radiation.
    • -
    • The book of mindswap will now properly mindswap it's users.
    • +
    • Coldproof mobs can now be cooled down, but are still immune to the negative effects of cold.
    • +
    • This also fixes some edge cases (freezing beams) where mobs could be cooled down and damaged despite cold resistance.
    • +
    • Virus crates now contain several bottles of randomly generated diseases with symptom levels up to 8.
    • +
    • Removed the single-symptom bottles that were included in the virus crate.
    • +
    • Androids are now immune to radiation.
    -

    iksyp updated:

    +

    cacogen updated:

      -
    • stacking machines and their consoles no longer dissapear into the shadow realm when broken
    • -
    • you can link the stacking machine and its console by using a multitool
    • +
    • You can now see what other people are eating or drinking.
    • +
    • Borg shaker can now synthesise milk, lemon juice, banana juice and coffee
    • +
    • Renamed drinks no longer revert to their original name when their reagents change
    - -

    18 May 2018

    -

    GrayRachnid updated:

    +

    chesse20 updated:

      -
    • The Spider Clan proudly announces that they've taken steps to improve their hospitality at their capture center! They now hope that captured targets would not kill them self or fight between each other, dirtying the floor with blood.
    • -
    • They've also added a VR room for those sick of the real world, taking them to a reality where they feel like they matter.
    • +
    • Adds Exotic Corgi Crate to Cargo
    • +
    • Adds Exotic Corgi, a Corgi with a random hue applied to it
    • +
    • Adds Talking Corgi Crate, and talking Corgi
    -

    17 May 2018

    +

    12 June 2018

    Dax Dupont updated:

      -
    • Cult space bases are kill again.
    • -
    • Cult floors now pass gas.
    • -
    • Fixed a few things deconning into the wrong circuit.
    • -
    • You can no longer do infinite bioware surgery.
    • -
    • Added the MURDERDOME VR player versus player combat arena, filled with the most powerful weapons Centcom could think of to murder each other peacefully. Contact your nearest vendors for VR sleepers.
    • -
    • VR landmarks now accept outfits.
    • -
    • VR Sleepers can now be constructed and researched.
    • -
    • VR Sleepers now respond to mouse drops like sleepers!
    • -
    • VR sleepers no longer close or open inappropriately.
    • -
    -

    Denton updated:

    -
      -
    • Added /syndicate subtypes for air alarms and APCs.
    • -
    • Added missing stock parts to the syndicate lavaland base.
    • -
    • Added kitchen related circuit boards to the syndie lavaland base.
    • +
    • Botany trays don't magically refill anymore with a rped.
    -

    Dimmadunk updated:

    +

    SpaceManiac updated:

      -
    • There's a new type of reagent added to the booze dispenser: Fernet. With it you can make a couple of new digestif drinks that will help you reduce excess fat!
    • +
    • Fire alarms now redden all the room's lights, and emit light themselves, rather than applying an area-wide overlay.
    • +
    • Fire alarms no longer visually conflict with radiation storms.
    • +
    • Pulling objects diagonally no longer causes them to flail about when changing directions.
    • +
    • Riders are no longer left behind if you move while pulling something that has since been anchored.
    • +
    • Lockboxes are now actually locked again.
    • +
    • Deaf people can no longer hear cyborg system error alarms.
    • +
    • Plasmamen now receive their suit and internals when entering VR.
    • +
    • Legion cores and admin revives now heal confusion.
    -

    Garen updated:

    +

    XDTM updated:

      -
    • Thrower and Gun circuits put messages in chat when they're used.
    • -
    • Only the gun assembly can throw/shoot while in hand
    • -
    • Adds inhands for the gun assembly
    • -
    • grabber inventories update when a thrower takes from them
    • +
    • Diseases now properly lose scan invisibility if their stealth drops below the required threshold.
    -

    Pubby updated:

    + +

    11 June 2018

    +

    Mickyan updated:

      -
    • PubbyStation has been updated. You can now be the lawyer.
    • +
    • Added an abandoned kitchen to Metastation maintenance
    -

    ShizCalev updated:

    +

    XDTM updated:

      -
    • Adminorazine will no longer kill ash lizards.
    • -
    • Adminorazine will no longer remove quirks.
    • +
    • Fixed anti-magic not working at all.
    -

    iskyp updated:

    +

    fludd12 updated:

      -
    • the walls on the crashed abductor ship ruin in lavaland can now be broken down
    • +
    • Stabilized gold extracts now respawn the familiar properly.
    • +
    • Stabilized gold familiars retain the proper languages even after respawning.
    • +
    • Stabilized gold familiars can be renamed and have their positions reset at will.
    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 7463549b59..bcdeb68f12 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -19087,3 +19087,380 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. to hear anyone or surviving past the owner's death. - rscadd: Imaginary friends can now move into the owner's head. - rscadd: Imaginary friends can now choose to become invisible to the owner at will. +2018-07-20: + Cobby: + - bugfix: having higher sanity is no longer punished by making you enter crit faster + - balance: you can have 100 mood instead of 99 before it starts slowly decreasing + - bugfix: Paper doesn't give illegal tech anymore + CthulhuOnIce: + - spellcheck: Fixed 'Cybogs' in research nodes. + Denton: + - admin: Added hardsuit outfits for the Captain, HoS, and CMO. Removed old Shaft + Miner (Asteroid) outfits. Gave Chief Engineer (Hardsuit) engineering scanner + goggles. Added debug outfit for testing. + - tweak: Most wardrobe vendor contents have been tweaked. CargoDrobe now has the + vintage shaft miner jumpsuit available as a premium item. + WJohn: + - balance: Caravan ruin overall contains much less firepower, and should be harder + to cheese due to placement changes and less ammunition to work with. + - rscadd: The white ship is no longer stuck to flying around the station z level. + It can now fly around its own spawn's level and the derelict's level too (these + sometimes will be the same level). + kevinz000: + - rscdel: Removed flightsuits + zaracka: + - balance: Visible indications of cultist status during deconversion using holy + water happen more often. +2018-07-21: + Jared-Fogle: + - bugfix: Fixes destroyed non-human bodies cloning as humans. + WJohnston: + - balance: Reduced the 180 rounds (6 boxes) of 9mm ammo in the deep storage bunker + to 45 (3 mags). Removed one of the wt-550s but put a compatible magazine in + its place for the other to use. Turned the syndicate hardsuit into a regular + grey space suit. +2018-07-23: + BeeSting12: + - bugfix: Robotics' circuit printers have been changed to science departmental circuit + printers to allow science to do their job more efficiently. + Cruix: + - bugfix: AI eyes will now see static immediately after jumping between cameras. + Denton: + - rscadd: Shared engineering storage rooms have been added to Deltastation. + - bugfix: Fixed access requirements of lockdown buttons in the CE office. On some + maps, these were set to the wrong department. + - bugfix: Fixed Box and Metastation's CE locker having no access requirements. + - bugfix: 'Deltastation: Fixed engineers having access to atmospheric technicians'' + storage room. Fixed engineers having no access to port bow solars (the ones + at the incinerator by Atmospherics). Also fixed Minisat airlock access requirements.' + - bugfix: 'Pubbystation: Medbay and Cargo now have a techfab instead of protolathe.' + - tweak: Charlie/Delta Station (the "old cryogenics pod" ghost role) has been improved. + Survivors can now finish the singularity engine and will have more minerals + available inside the Hivebot mothership. The local atmos network is connected + to an air tank; fire alarms and a bathroom have been added. Keep an eye out + for a defibrillator too. + - rscadd: Nuclear Operatives can now purchase Buzzkill grenades for 5TC per box + of three. Those release a swarm of angry bees with random toxins. + - spellcheck: Chemical grenades, empty casings and smart metal foam nades now have + more detailed descriptions. + - spellcheck: Added examine descriptions to the organ harvester. + Epoc: + - rscadd: Adds "Toggle Flashlight" to PDA context menu. + Hathkar: + - tweak: Captain's Door Remote now has vault access again. + Mickyan: + - bugfix: 'Deltastation: replaced blood decals in maintenance with their dried counterparts' + SpaceManiac: + - tweak: RCDs can now be loaded partially by compressed matter cartridges rather + than always consuming the entire cartridge. + - bugfix: Fernet Cola's effect has been restored. + - bugfix: Krokodil's addition stage two warning message has been restored. + - admin: The party button is back. + WJohnston: + - bugfix: Fixed corner decals rotating incorrectly in the small caravan freighter. + XDTM: + - bugfix: Limbs disabled by stamina damage no longer appear as broken and mangled. + obscolene: + - soundadd: Curator's whip actually makes a whip sound now +2018-07-25: + Denton: + - tweak: H.O.N.K mechs can now play more sounds from the "Sounds of HONK" panel. + JJRcop: + - tweak: The item pick up animation tweens to the correct spot if you move + MrDoomBringer: + - spellcheck: Changed "cyro" to "cryo" in a few item descriptions and flavortexts. + SpaceManiac: + - rscadd: The vault now contains an ore silo where the station's minerals are stored. + - rscadd: The station's ORM, recycling, and the labor camp send materials to the + silo via bluespace. + - rscadd: Protolathes, techfabs, and circuit imprinters all pull materials from + the silo via bluespace. + - rscadd: Those with vault access can view mineral logs and pause or remove any + machine's access, or add machines with a multitool. + - tweak: The ORM's alloy recipes are now available in engineering and science protolathes. + Telecomms chat logging: + - code_imp: Added logging of telecomms chat + - config: Added LOG_TELECOMMS config flag (enabled by default) + WJohnston: + - rscadd: Redesigned deltastation's abandoned white ship into a luxury NT frigate. + Oh, and there are giant spiders too. + - bugfix: Med and booze dispensers work again on lavaland's syndie base, and the + circuit lab there is slightly less tiny. + subject217: + - rscadd: The M-90gl is back in the Nuke Ops uplink with rebalanced pricing. + - bugfix: The revolver cargo bounty no longer accepts double barrel shotguns and + grenade launchers. +2018-07-26: + Iamgoofball: + - bugfix: The shake now occurs at the same time as the movement, and it now doesn't + trigger on containers or uplinks. + Mickyan: + - balance: Light Step quirk now stops you from leaving footprints + Naksu: + - code_imp: gas reactions no longer copy a list needlessly + SpaceManiac: + - rscadd: 'The following machines can now be tabled: all-in-one grinder, cell charger, + dish drive, disk compartmentalizer, microwave, recharger, soda/booze dispenser.' + - rscadd: Unanchored soda/booze dispensers can now be rotated with alt-click. + - bugfix: Machinery UIs no longer close immediately upon going out of interaction + range. + - rscadd: Washing machines now wiggle slightly while running. + - rscadd: Washing machines can be unanchored if their panel is open for even more + wiggle. + WJohnston: + - rscadd: Return of the boxstation white ship, with a complete makeover! Box and + meta no longer share the same ship. +2018-07-27: + ShizCalev: + - bugfix: Destroying a camera will now clear it's alarm. + ninjanomnom: + - bugfix: The cargo shuttle should move normally again +2018-07-28: + CitrusGender: + - rscdel: Removed slippery component from water turf + Denton: + - balance: The Odysseus mech's movespeed has been increased. + - tweak: 'Metastation: Spruced up the RnD circuitry lab; no gameplay changes.' + - tweak: Due to exemplary performance, NanoTrasen has awarded Shaft Miners with + their very own bathroom, constructed at the mining station dormitories. Construction + costs will be deducted from their salaries. + Mickyan: + - imageadd: insanity static is subtler + - imageadd: neutral mood icon is now light blue + SpaceManiac: + - bugfix: Cyborgs and AIs can now interact with items inside them again. + Tlaltecuhtli: + - rscadd: Mouse traps are craftable from cardboard and a metal rod. + WJohnston: + - balance: Syndicate and pirate simple animals should have stats that more closely + resemble fighting a human in those suits, with appropriate health, sounds, and + space movement limitations. + - imageadd: Pirates in space suits have more modern space suits. +2018-07-30: + Anonmare: + - balance: Upload boards and AI modules, in addition to Weapon Recharger boards, + are now more expensive to manufacture + Basilman: + - bugfix: fixed BM Speedwagon offsets + Cobby (based off Wesoda25's idea): + - rscadd: Adds the PENLITE holobarrier. A holographic barrier which halts individuals + with bad diseases! + Denton: + - tweak: Techweb nodes that are available to exofabs by roundstart have been moved + to basic research technology. + - balance: Ripley APLU circuit boards are now printable by roundstart. + - balance: Odysseus, Gygax, Durand, H.O.N.K. and Phazon mech parts have to be researched + before becoming printable (same as their circuit boards). + - tweak: Arrivals shuttles no longer throw objects/players when docking. + - bugfix: Regular fedoras no longer spawn containing flasks. + - tweak: Increased the range of handheld T-ray scanners. + - balance: Cargo bounties that request irreplaceable items have been removed. + Garen: + - balance: Throwers no longer deal damage + - balance: Flashlight circuits are now the same strength as a normal flashlight + - balance: Grabber circuits are now combat circuits + - rscdel: Removed smoke circuits + - rscdel: Removed all screens larger than small + - tweak: Ntnet circuits can no longer specify the passkey used, it instead always + uses the access + Hate9: + - rscadd: Added pulse multiplexer circuits, to complete the list of data transfers. + Jared-Fogle: + - rscadd: NanoTrasen now officially recognizes Moth Week as a holiday. + - rscdel: Temporarily removes canvases until someone figures out how to fix them. + Mickyan: + - balance: Social anxiety trigger range decreased. Stay out of my personal space! + - bugfix: Social anxiety no longer triggers while nobody is around but you + WJohnston: + - rscadd: Redesigned the metastation white ship as a salvage vessel. + YoYoBatty: + - bugfix: SMES power terminals not actually deleting the terminal reference when + by cutting the terminal itself rather than the SMES. + - bugfix: SMES now reconnect to the grid properly after construction. + - refactor: SMES now uses wirecutter act to handle terminal deconstruction. + ninjanomnom: + - bugfix: Objects picked up from tables blocking throws will no longer be forever + unthrowable +2018-08-01: + Basilman: + - rscadd: Added the stealth manual to the uplink, costs 8 TC. Find it under the + implant section + Cobby: + - spellcheck: Drone's Law 3 has been edited to explicitly state that it's for the + site of activation (aka people do not get banned for going to upgrade station + as derelict drones since it's explicitly clear now). See https://tgstation13.org/phpBB/viewtopic.php?f=33&t=18844&p=429944#p429944 + for why this was PR'd + - bugfix: PENLITEs are now actually spawnable in techwebs. Reminder to make sure + everything is committed before PRing haha! + Denton: + - tweak: New bounties have been added for the Firefighter APLU mech, cat tails and + the Cat/Liz o' Nine Tails weapons. + - bugfix: ExoNuclear mech reactors now noticably irradiate their environment. + - spellcheck: Adjusted suit storage unit descriptions to mention that they can decontaminate + irradiated equipment. + Hate9: + - rscadd: Added tiny-sized circuits (called Devices) + - imageadd: added new icons for the Devices + Iamgoofball: + - balance: 'Buzzkill Grenade Box Cost: 5 -> 15' + Shdorsh: + - rscadd: Text replacer circuit + SpaceManiac: + - bugfix: The bridge of the gulag shuttle now has a stacking machine console for + ejecting sheets. + Time-Green: + - rscadd: You can now mount energy guns into emitters + - bugfix: portal guns no longer runtime when fired by turrets + barbedwireqtip: + - tweak: Adds the security guard outfit from Half-Life to the secdrobe + granpawalton: + - tweak: Removed old piping sections and replaced with Canister storage area in + atmos incinerator + - tweak: scrubber and distro pipes moved in atmos incinerator to make room for added + piping + - balance: added filter at connector on scrubbing pipe in atmos incinerator + - balance: replaced vent in incinerator with scrubber in **Both** incinerators + - balance: mixer placed on pure loop at plasma + - bugfix: delta and pubby atmos incinerator air alarm is no longer locked at round + start + - bugfix: pubby atmos incinerator now starts without atmos in it + kevinz000: + - rscadd: 'Cameras now shoot from 1x1 to 7x7, fully customizable. Alt click on them + to change the size of your photos. experimental: All photos, assuming the server + host turns this feature on, will be logged to disk in round logs, with their + data and path stored in a json. This allows for things like Statbus, and persistence + features among other things to easily grab the data and load the photo.' + - rscadd: Mappers are now able to add in photo albums and wall frames with persistence! + This, obviously, requires photo logging to be turned on. If this is enabled + and used, these albums and frames will save the ID of the photo(s) inside them + and load it the next time they're loaded in! Like secret satchels, but for photos! +2018-08-03: + ArcaneMusic: + - soundadd: Added a new, shoutier RoundEnd Sound. + Basilman: + - bugfix: fixed agent box invisibility + Denton: + - tweak: 'Syndicate lavaland base: Added a grenade parts vendor and smoke machine + board. The testing chamber now has a heatproof door and vents/scrubbers to replace + air after testing gas grenades. Chemical/soda/beer vendors are emagged by default; + the vault contains a set of valuable Syndicate documents.' + - tweak: Added a scrubber pipenet to the Lavaland mining base. + Garen: + - bugfix: mobs now call COMSIG_PARENT_ATTACKBY + JJRcop: + - rscadd: Deadchat can use emoji now, be sure to freak out scrying orb users. + Kmc2000: + - rscadd: You can now attach 4 energy swords to a securiton assembly instead of + a baton to create a 4 esword wielding nightmare-bot + Mickyan: + - imageadd: added sprites for camera when equipped or in hand + - tweak: cameras are now equipped in the neck slot + SpaceManiac: + - bugfix: Traps now have their examine text back. + Supermichael777: + - bugfix: Cigarettes now always transfer a valid amount of reagents. + - bugfix: Reagent order of operations is no longer completely insane + WJohnston: + - tweak: Added a gun recharger to delta's white ship and toned it down from a "luxury" + frigate to just a NT frigate, it's just not made for luxury! + XDTM: + - bugfix: Beheading now works while in hard crit, so it can be used against zombies. + - tweak: You can now have fakedeath without also being unconscious. Existing sources + of fakedeath still cause unconsciousness. + - rscadd: Zombies and skeletons now appear as dead. Don't trust zombies on the ground! + - rscadd: You can now make Ghoul Powder with Zombie Powder and epinephrine, which + causes fakedeath without uncounsciousness. + granpawalton: + - bugfix: pubby round start atmos issues resolved + - bugfix: pubby departures lounge vent is no longer belonging to brig maint + - rscadd: pipe dispenser on pirate ship + ninjanomnom: + - bugfix: The first pod spawned had some issues with shuttle id and wouldn't move + properly. This has been fixed. +2018-08-06: + Basilman: + - balance: Increased agent box cooldown to 10 seconds + Denton: + - bugfix: Omegastation's Atmospherics lockdown button now has the proper access + reqs. + - bugfix: Pubbystation's disposals conveyor belts now face the correct direction. + - bugfix: Pubby's service techfab is no longer stuck inside a wall. + - bugfix: Pubby's disposal loop is no longer broken. + - tweak: The Lavaland seed vault chem dispenser now has upgraded stock parts. + - tweak: 'Metastation: Extended protective grilles to partially cover the Supermatter + cooling loop.' + Epoc: + - rscadd: You can now show off your Attorney's Badge + Garen: + - bugfix: Fixed AddComponent(target) not working when an instance is passed rather + than a path + JJRcop: + - bugfix: Fixed some strange string handling in SDQL + Jared-Fogle: + - rscadd: Moths can now eat clothes. + JohnGinnane: + - rscadd: Users can now see their prayers (similar to PDA sending messages) + Mickyan: + - tweak: Drinking alcohol now improves your mood + Shdorsh: + - bugfix: The previously-added find-replace circuit now actually exists. + Tlaltecuhtli (and then Cobby): + - bugfix: Science Bounties are now available! + WJohnston: + - balance: Rebalanced the simple animal syndies on the metastation ship to be a + bit less destructive of their surroundings, and downgraded the smg guy to a + pistol and upgraded the other guys to knives. + Y0SH1 M4S73R: + - rscadd: windoors now have NTNet support. The "open" command toggles the windoor + open and closed. The "touch" command, not usable by door remotes, functions + identically to walking into the windoor, opening it and then closing it after + some time. + cyclowns: + - tweak: Fusion has been reworked to be a whole lot deadlier! + - tweak: You can now use analyzers on gas mixtures holders (canisters, pipes, turfs, + etc) that have undergone fusion to see the power of the fusion reaction that + occurred. + - balance: Several gases' fusion power and fusion's gas creation has been reworked + to make its tier system more linear and less cheese-able. +2018-08-07: + WJohnston: + - rscadd: Redesigned the pirate event ship to be much prettier and better fitting + what it was meant to do. +2018-08-08: + Denton: + - rscadd: 'Added five new cargo packs: cargo supplies, circuitry starter pack, premium + carpet, surgical supplies and wrapping paper.' + - tweak: Added one bag of L type blood to the blood pack crate. Added a chance for + contraband crates to contain DonkSoft refill packs. + Iamgoofball: + - tweak: The Stealth Implant was mistakenly made nuclear operatives only due to + a misunderstanding of the code. This has been fixed. + Mark9013100: + - rscadd: Pocket fire extinguishers can now be made in the autolathe. + SpaceManiac: + - bugfix: The power flow control console once again allows actually modifying APCs. + - tweak: Gas meters will now prefer to target visible pipes if they share a turf + with hidden pipes. + daklaj: + - bugfix: fixed beepsky and ED-209 cuffing their target successfully even when getting + disabled (EMP'd) in the process + kevinz000: + - rscadd: Catpeople are now a subspecies of human. Switch your character's species + to "Felinid" to be one. + - rscadd: Oh yeah and they show up as felinids on health analyzers. +2018-08-10: + AnturK: + - balance: Portable flashers won't burnout from failed flashes. + Denton, Tlaltecuhtli: + - rscadd: Added cargo bounties that require cooperation with Atmospherics, Engineering + and Mining. + Naksu: + - bugfix: Transformation diseases now properly check for job bans where applicable + - code_imp: Fixed a bunch of runtimes that result from transforming into a nonhuman + from a human, or a noncarbon from a carbon. + SpaceManiac: + - refactor: The map loader has been cleaned up and made more flexible. + nicbn: + - tweak: 'BoxStation science changes: Circuitry lab is closer to RnD now; cannisters, + portable vents, portable scrubbers, filters and mixers have been moved to Toxin + Mixing Lab. There is now a firing range at the testing lab!' diff --git a/html/changelogs/AutoChangeLog-pr-39182.yml b/html/changelogs/AutoChangeLog-pr-39182.yml deleted file mode 100644 index 6e1116a2df..0000000000 --- a/html/changelogs/AutoChangeLog-pr-39182.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "WJohn" -delete-after: True -changes: - - balance: "Caravan ruin overall contains much less firepower, and should be harder to cheese due to placement changes and less ammunition to work with." diff --git a/html/changelogs/AutoChangeLog-pr-39195.yml b/html/changelogs/AutoChangeLog-pr-39195.yml deleted file mode 100644 index 2bdd5d6e1e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-39195.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "kevinz000" -delete-after: True -changes: - - rscdel: "Removed flightsuits" diff --git a/html/changelogs/AutoChangeLog-pr-39202.yml b/html/changelogs/AutoChangeLog-pr-39202.yml deleted file mode 100644 index 0d16ecb6a9..0000000000 --- a/html/changelogs/AutoChangeLog-pr-39202.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "CthulhuOnIce" -delete-after: True -changes: - - spellcheck: "Fixed 'Cybogs' in research nodes." diff --git a/html/changelogs/AutoChangeLog-pr-39572.yml b/html/changelogs/AutoChangeLog-pr-39572.yml new file mode 100644 index 0000000000..a1a34f389a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-39572.yml @@ -0,0 +1,4 @@ +author: "Denton" +delete-after: True +changes: + - tweak: "Fixed the Beer Day date and added a few more holidays." diff --git a/html/changelogs/AutoChangeLog-pr-39605.yml b/html/changelogs/AutoChangeLog-pr-39605.yml new file mode 100644 index 0000000000..af9a58e9e1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-39605.yml @@ -0,0 +1,5 @@ +author: "zaracka" +delete-after: True +changes: + - bugfix: "blunt trauma causes brain damage while unconscious too" + - bugfix: "sharp weapons no longer count as blunt trauma in all cases" diff --git a/html/changelogs/AutoChangeLog-pr-39623.yml b/html/changelogs/AutoChangeLog-pr-39623.yml new file mode 100644 index 0000000000..380b23d938 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-39623.yml @@ -0,0 +1,4 @@ +author: "YPOQ" +delete-after: True +changes: + - bugfix: "AIs can take photos and print them at photocopiers again." diff --git a/html/changelogs/AutoChangeLog-pr-39624.yml b/html/changelogs/AutoChangeLog-pr-39624.yml new file mode 100644 index 0000000000..3b747d4bf0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-39624.yml @@ -0,0 +1,5 @@ +author: "YPOQ" +delete-after: True +changes: + - bugfix: "Cult floors will not deconstruct to space" + - bugfix: "Cult floors do not spawn rods when deconstructed" diff --git a/html/changelogs/AutoChangeLog-pr-39625.yml b/html/changelogs/AutoChangeLog-pr-39625.yml new file mode 100644 index 0000000000..e14d0d1b6c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-39625.yml @@ -0,0 +1,4 @@ +author: "YPOQ" +delete-after: True +changes: + - bugfix: "Footprints should no longer spread out of control" diff --git a/html/changelogs/AutoChangeLog-pr-39636.yml b/html/changelogs/AutoChangeLog-pr-39636.yml new file mode 100644 index 0000000000..635650e93c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-39636.yml @@ -0,0 +1,4 @@ +author: "Jordie0608" +delete-after: True +changes: + - admin: "Asay history is once again logged under the admin log secret." diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 6ace923016..e8464035d5 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/mob/actions/actions_items.dmi b/icons/mob/actions/actions_items.dmi index ce7d000409..ca380a5376 100644 Binary files a/icons/mob/actions/actions_items.dmi and b/icons/mob/actions/actions_items.dmi differ diff --git a/icons/mob/actions/backgrounds.dmi b/icons/mob/actions/backgrounds.dmi index 6af3b98728..4303c6fff6 100644 Binary files a/icons/mob/actions/backgrounds.dmi and b/icons/mob/actions/backgrounds.dmi differ diff --git a/icons/mob/aibots.dmi b/icons/mob/aibots.dmi index 74137e8947..913a0dff02 100644 Binary files a/icons/mob/aibots.dmi and b/icons/mob/aibots.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index c6993c2bc4..b3d84bfbb8 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 1c51682406..5c9a7b9ba2 100644 Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ diff --git a/icons/mob/inhands/clothing_lefthand.dmi b/icons/mob/inhands/clothing_lefthand.dmi index 76adebdc11..2b39acd3d8 100644 Binary files a/icons/mob/inhands/clothing_lefthand.dmi and b/icons/mob/inhands/clothing_lefthand.dmi differ diff --git a/icons/mob/inhands/clothing_righthand.dmi b/icons/mob/inhands/clothing_righthand.dmi index a12053ae1d..ef6c9b3f06 100644 Binary files a/icons/mob/inhands/clothing_righthand.dmi and b/icons/mob/inhands/clothing_righthand.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index 2480cd9cd6..f1b125eb20 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 0fc499e45d..7ef316be17 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/mob/inhands/misc/devices_lefthand.dmi b/icons/mob/inhands/misc/devices_lefthand.dmi index a421b1fbc5..b84d8a8978 100644 Binary files a/icons/mob/inhands/misc/devices_lefthand.dmi and b/icons/mob/inhands/misc/devices_lefthand.dmi differ diff --git a/icons/mob/inhands/misc/devices_righthand.dmi b/icons/mob/inhands/misc/devices_righthand.dmi index 866a6765ec..47e3260c6e 100644 Binary files a/icons/mob/inhands/misc/devices_righthand.dmi and b/icons/mob/inhands/misc/devices_righthand.dmi differ diff --git a/icons/mob/neck.dmi b/icons/mob/neck.dmi index 24aa605c9f..b91c29e03f 100644 Binary files a/icons/mob/neck.dmi and b/icons/mob/neck.dmi differ diff --git a/icons/mob/pets.dmi b/icons/mob/pets.dmi index 12cdbb2817..d0983a8fab 100644 Binary files a/icons/mob/pets.dmi and b/icons/mob/pets.dmi differ diff --git a/icons/mob/screen_full.dmi b/icons/mob/screen_full.dmi index cbd70b541d..5d344d7fbd 100644 Binary files a/icons/mob/screen_full.dmi and b/icons/mob/screen_full.dmi differ diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi index f65bc5dbf9..1804a28c0e 100644 Binary files a/icons/mob/screen_gen.dmi and b/icons/mob/screen_gen.dmi differ diff --git a/icons/mob/simple_human.dmi b/icons/mob/simple_human.dmi index b1265134e5..bd6472ed42 100644 Binary files a/icons/mob/simple_human.dmi and b/icons/mob/simple_human.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 69fd014581..fa10f9538a 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 148e3b1b4c..b58f782c12 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/assemblies/electronic_setups.dmi b/icons/obj/assemblies/electronic_setups.dmi index f18018c0ae..58ef0903be 100644 Binary files a/icons/obj/assemblies/electronic_setups.dmi and b/icons/obj/assemblies/electronic_setups.dmi differ diff --git a/icons/obj/closet.dmi b/icons/obj/closet.dmi index 3d1d7c406d..d8c198c155 100644 Binary files a/icons/obj/closet.dmi and b/icons/obj/closet.dmi differ diff --git a/icons/obj/clothing/accessories.dmi b/icons/obj/clothing/accessories.dmi index 63c036ce14..5da31a3a4f 100644 Binary files a/icons/obj/clothing/accessories.dmi and b/icons/obj/clothing/accessories.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 7503b09db5..2e2ab1c312 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 521946aa04..f01f7cac77 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 83b4cb52e6..ffc936d001 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 4f43eae72f..acf3a09274 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/icons/obj/flora/rocks.dmi b/icons/obj/flora/rocks.dmi index f2d49ec016..3e7ea03126 100644 Binary files a/icons/obj/flora/rocks.dmi and b/icons/obj/flora/rocks.dmi differ diff --git a/icons/obj/hydroponics/equipment.dmi b/icons/obj/hydroponics/equipment.dmi index 177a0dbf56..82dce552a7 100644 Binary files a/icons/obj/hydroponics/equipment.dmi and b/icons/obj/hydroponics/equipment.dmi differ diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index bae64f4c55..bb057317a8 100644 Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ diff --git a/icons/obj/lavaland/artefacts.dmi b/icons/obj/lavaland/artefacts.dmi index 0530f7bb3b..7f11ba29d4 100644 Binary files a/icons/obj/lavaland/artefacts.dmi and b/icons/obj/lavaland/artefacts.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index 804cd607d2..fbb55434d1 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ diff --git a/icons/obj/machines/harvester.dmi b/icons/obj/machines/harvester.dmi new file mode 100644 index 0000000000..d6d9b01fc6 Binary files /dev/null and b/icons/obj/machines/harvester.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 84e9f78add..93e42e4846 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ diff --git a/icons/obj/puzzle.dmi b/icons/obj/puzzle.dmi new file mode 100644 index 0000000000..f623142beb Binary files /dev/null and b/icons/obj/puzzle.dmi differ diff --git a/icons/turf/decals.dmi b/icons/turf/decals.dmi index bcd5dcdf95..263623ef3a 100644 Binary files a/icons/turf/decals.dmi and b/icons/turf/decals.dmi differ diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index cdf6df2dab..5eb4a35576 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -29,7 +29,7 @@ em {font-style: normal; font-weight: bold;} .adminobserverooc {color: #0099cc; font-weight: bold;} .adminooc {color: #700038; font-weight: bold;} -.adminobserver {color: #996600; font-weight: bold;} +.adminsay {color: #FF4500; font-weight: bold;} .admin {color: #386aff; font-weight: bold;} .name { font-weight: bold;} diff --git a/sound/creatures/bee.ogg b/sound/creatures/bee.ogg new file mode 100644 index 0000000000..cd2779f834 Binary files /dev/null and b/sound/creatures/bee.ogg differ diff --git a/sound/effects/beepskyspinsabre.ogg b/sound/effects/beepskyspinsabre.ogg new file mode 100644 index 0000000000..87be7dae79 Binary files /dev/null and b/sound/effects/beepskyspinsabre.ogg differ diff --git a/sound/misc/box_deploy.ogg b/sound/misc/box_deploy.ogg new file mode 100644 index 0000000000..3fbe895950 Binary files /dev/null and b/sound/misc/box_deploy.ogg differ diff --git a/sound/roundend/gondolabridge.ogg b/sound/roundend/gondolabridge.ogg new file mode 100644 index 0000000000..949fb53d58 Binary files /dev/null and b/sound/roundend/gondolabridge.ogg differ diff --git a/sound/weapons/whip.ogg b/sound/weapons/whip.ogg new file mode 100644 index 0000000000..9bc0d45610 Binary files /dev/null and b/sound/weapons/whip.ogg differ diff --git a/strings/names/megacarp1.txt b/strings/names/megacarp1.txt index e214c4cc01..881cb7a80b 100644 --- a/strings/names/megacarp1.txt +++ b/strings/names/megacarp1.txt @@ -33,7 +33,7 @@ Deep Blue Quick Slow Beloved -Agressive +Aggressive Angry Bewildered Clumsy diff --git a/tgui/assets/tgui.js b/tgui/assets/tgui.js index 2e60b99572..25f0b3bade 100644 --- a/tgui/assets/tgui.js +++ b/tgui/assets/tgui.js @@ -1,19 +1,19 @@ -require=function(){function t(e,n,a){function r(o,s){if(!n[o]){if(!e[o]){var u="function"==typeof require&&require;if(!s&&u)return u(o,!0);if(i)return i(o,!0);var p=Error("Cannot find module '"+o+"'");throw p.code="MODULE_NOT_FOUND",p}var c=n[o]={exports:{}};e[o][0].call(c.exports,function(t){var n=e[o][1][t];return r(n||t)},c,c.exports,t,e,n,a)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o=0;--a){var r=this.tryEntries[a],i=r.completion;if("root"===r.tryLoc)return e("end");if(r.tryLoc<=this.prev){var o=b.call(r,"catchLoc"),s=b.call(r,"finallyLoc");if(o&&s){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&b.call(a,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),f(n),O}},"catch":function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var a=n.completion;if("throw"===a.type){var r=a.arg;f(n)}return r}}throw Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:h(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=g),O}}}("object"==typeof t?t:"object"==typeof window?window:"object"==typeof self?self:this)}).call(this,void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(t,e,n){t(129),e.exports=t(24).RegExp.escape},{129:129,24:24}],4:[function(t,e,n){e.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},{}],5:[function(t,e,n){var a=t(19);e.exports=function(t,e){if("number"!=typeof t&&"Number"!=a(t))throw TypeError(e);return+t}},{19:19}],6:[function(t,e,n){var a=t(127)("unscopables"),r=Array.prototype;void 0==r[a]&&t(43)(r,a,{}),e.exports=function(t){r[a][t]=!0}},{127:127,43:43}],7:[function(t,e,n){e.exports=function(t,e,n,a){if(!(t instanceof e)||void 0!==a&&a in t)throw TypeError(n+": incorrect invocation!");return t}},{}],8:[function(t,e,n){var a=t(52);e.exports=function(t){if(!a(t))throw TypeError(t+" is not an object!");return t}},{52:52}],9:[function(t,e,n){"use strict";var a=t(117),r=t(112),i=t(116);e.exports=[].copyWithin||function(t,e){var n=a(this),o=i(n.length),s=r(t,o),u=r(e,o),p=arguments.length>2?arguments[2]:void 0,c=Math.min((void 0===p?o:r(p,o))-u,o-s),l=1;for(s>u&&u+c>s&&(l=-1,u+=c-1,s+=c-1);c-- >0;)u in n?n[s]=n[u]:delete n[s],s+=l,u+=l;return n}},{112:112,116:116,117:117}],10:[function(t,e,n){"use strict";var a=t(117),r=t(112),i=t(116);e.exports=function(t){for(var e=a(this),n=i(e.length),o=arguments.length,s=r(o>1?arguments[1]:void 0,n),u=o>2?arguments[2]:void 0,p=void 0===u?n:r(u,n);p>s;)e[s++]=t;return e}},{112:112,116:116,117:117}],11:[function(t,e,n){var a=t(40);e.exports=function(t,e){var n=[];return a(t,!1,n.push,n,e),n}},{40:40}],12:[function(t,e,n){var a=t(115),r=t(116),i=t(112);e.exports=function(t){return function(e,n,o){var s,u=a(e),p=r(u.length),c=i(o,p);if(t&&n!=n){for(;p>c;)if(s=u[c++],s!=s)return!0}else for(;p>c;c++)if((t||c in u)&&u[c]===n)return t||c||0;return!t&&-1}}},{112:112,115:115,116:116}],13:[function(t,e,n){var a=t(26),r=t(48),i=t(117),o=t(116),s=t(16);e.exports=function(t,e){var n=1==t,u=2==t,p=3==t,c=4==t,l=6==t,f=5==t||l,d=e||s;return function(e,s,h){for(var m,g,v=i(e),b=r(v),y=a(s,h,3),x=o(b.length),_=0,w=n?d(e,x):u?d(e,0):void 0;x>_;_++)if((f||_ in b)&&(m=b[_],g=y(m,_,v),t))if(n)w[_]=g;else if(g)switch(t){case 3:return!0;case 5:return m;case 6:return _;case 2:w.push(m)}else if(c)return!1;return l?-1:p||c?c:w}}},{116:116,117:117,16:16,26:26,48:48}],14:[function(t,e,n){var a=t(4),r=t(117),i=t(48),o=t(116);e.exports=function(t,e,n,s,u){a(e);var p=r(t),c=i(p),l=o(p.length),f=u?l-1:0,d=u?-1:1;if(2>n)for(;;){if(f in c){s=c[f],f+=d;break}if(f+=d,u?0>f:f>=l)throw TypeError("Reduce of empty array with no initial value")}for(;u?f>=0:l>f;f+=d)f in c&&(s=e(s,c[f],f,p));return s}},{116:116,117:117,4:4,48:48}],15:[function(t,e,n){var a=t(52),r=t(50),i=t(127)("species");e.exports=function(t){var e;return r(t)&&(e=t.constructor,"function"!=typeof e||e!==Array&&!r(e.prototype)||(e=void 0),a(e)&&(e=e[i],null===e&&(e=void 0))),void 0===e?Array:e}},{127:127,50:50,52:52}],16:[function(t,e,n){var a=t(15);e.exports=function(t,e){return new(a(t))(e)}},{15:15}],17:[function(t,e,n){"use strict";var a=t(4),r=t(52),i=t(47),o=[].slice,s={},u=function(t,e,n){if(!(e in s)){for(var a=[],r=0;e>r;r++)a[r]="a["+r+"]";s[e]=Function("F,a","return new F("+a.join(",")+")")}return s[e](t,n)};e.exports=Function.bind||function(t){var e=a(this),n=o.call(arguments,1),s=function(){var a=n.concat(o.call(arguments));return this instanceof s?u(e,a.length,a):i(e,a,t)};return r(e.prototype)&&(s.prototype=e.prototype),s}},{4:4,47:47,52:52}],18:[function(t,e,n){var a=t(19),r=t(127)("toStringTag"),i="Arguments"==a(function(){return arguments}()),o=function(t,e){try{return t[e]}catch(n){}};e.exports=function(t){var e,n,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=o(e=Object(t),r))?n:i?a(e):"Object"==(s=a(e))&&"function"==typeof e.callee?"Arguments":s}},{127:127,19:19}],19:[function(t,e,n){var a={}.toString;e.exports=function(t){return a.call(t).slice(8,-1)}},{}],20:[function(t,e,n){"use strict";var a=t(72).f,r=t(71),i=t(91),o=t(26),s=t(7),u=t(40),p=t(56),c=t(58),l=t(98),f=t(30),d=t(66).fastKey,h=t(124),m=f?"_s":"size",g=function(t,e){var n,a=d(e);if("F"!==a)return t._i[a];for(n=t._f;n;n=n.n)if(n.k==e)return n};e.exports={getConstructor:function(t,e,n,p){var c=t(function(t,a){s(t,c,e,"_i"),t._t=e,t._i=r(null),t._f=void 0,t._l=void 0,t[m]=0,void 0!=a&&u(a,n,t[p],t)});return i(c.prototype,{clear:function(){for(var t=h(this,e),n=t._i,a=t._f;a;a=a.n)a.r=!0,a.p&&(a.p=a.p.n=void 0),delete n[a.i];t._f=t._l=void 0,t[m]=0},"delete":function(t){var n=h(this,e),a=g(n,t);if(a){var r=a.n,i=a.p;delete n._i[a.i],a.r=!0,i&&(i.n=r),r&&(r.p=i),n._f==a&&(n._f=r),n._l==a&&(n._l=i),n[m]--}return!!a},forEach:function(t){h(this,e);for(var n,a=o(t,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(a(n.v,n.k,this);n&&n.r;)n=n.p},has:function(t){return!!g(h(this,e),t)}}),f&&a(c.prototype,"size",{get:function(){return h(this,e)[m]}}),c},def:function(t,e,n){var a,r,i=g(t,e);return i?i.v=n:(t._l=i={i:r=d(e,!0),k:e,v:n,p:a=t._l,n:void 0,r:!1},t._f||(t._f=i),a&&(a.n=i),t[m]++,"F"!==r&&(t._i[r]=i)),t},getEntry:g,setStrong:function(t,e,n){p(t,e,function(t,n){this._t=h(t,e),this._k=n,this._l=void 0},function(){for(var t=this,e=t._k,n=t._l;n&&n.r;)n=n.p;return t._t&&(t._l=n=n?n.n:t._t._f)?"keys"==e?c(0,n.k):"values"==e?c(0,n.v):c(0,[n.k,n.v]):(t._t=void 0,c(1))},n?"entries":"values",!n,!0),l(e)}}},{124:124,26:26,30:30,40:40,56:56,58:58,66:66,7:7,71:71,72:72,91:91,98:98}],21:[function(t,e,n){var a=t(18),r=t(11);e.exports=function(t){return function(){if(a(this)!=t)throw TypeError(t+"#toJSON isn't generic");return r(this)}}},{11:11,18:18}],22:[function(t,e,n){"use strict";var a=t(91),r=t(66).getWeak,i=t(8),o=t(52),s=t(7),u=t(40),p=t(13),c=t(42),l=t(124),f=p(5),d=p(6),h=0,m=function(t){return t._l||(t._l=new g)},g=function(){this.a=[]},v=function(t,e){return f(t.a,function(t){return t[0]===e})};g.prototype={get:function(t){var e=v(this,t);return e?e[1]:void 0},has:function(t){return!!v(this,t)},set:function(t,e){var n=v(this,t);n?n[1]=e:this.a.push([t,e])},"delete":function(t){var e=d(this.a,function(e){return e[0]===t});return~e&&this.a.splice(e,1),!!~e}},e.exports={getConstructor:function(t,e,n,i){var p=t(function(t,a){s(t,p,e,"_i"),t._t=e,t._i=h++,t._l=void 0,void 0!=a&&u(a,n,t[i],t)});return a(p.prototype,{"delete":function(t){if(!o(t))return!1;var n=r(t);return n===!0?m(l(this,e))["delete"](t):n&&c(n,this._i)&&delete n[this._i]},has:function(t){if(!o(t))return!1;var n=r(t);return n===!0?m(l(this,e)).has(t):n&&c(n,this._i)}}),p},def:function(t,e,n){var a=r(i(e),!0);return a===!0?m(t).set(e,n):a[t._i]=n,t},ufstore:m}},{124:124,13:13,40:40,42:42,52:52,66:66,7:7,8:8,91:91}],23:[function(t,e,n){"use strict";var a=t(41),r=t(34),i=t(92),o=t(91),s=t(66),u=t(40),p=t(7),c=t(52),l=t(36),f=t(57),d=t(99),h=t(46);e.exports=function(t,e,n,m,g,v){var b=a[t],y=b,x=g?"set":"add",_=y&&y.prototype,w={},k=function(t){var e=_[t];i(_,t,"delete"==t?function(t){return v&&!c(t)?!1:e.call(this,0===t?0:t)}:"has"==t?function(t){return v&&!c(t)?!1:e.call(this,0===t?0:t)}:"get"==t?function(t){return v&&!c(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof y&&(v||_.forEach&&!l(function(){(new y).entries().next()}))){var S=new y,E=S[x](v?{}:-0,1)!=S,P=l(function(){S.has(1)}),C=f(function(t){new y(t)}),A=!v&&l(function(){for(var t=new y,e=5;e--;)t[x](e,e);return!t.has(-0)});C||(y=e(function(e,n){p(e,y,t);var a=h(new b,e,y);return void 0!=n&&u(n,g,a[x],a),a}),y.prototype=_,_.constructor=y),(P||A)&&(k("delete"),k("has"),g&&k("get")),(A||E)&&k(x),v&&_.clear&&delete _.clear}else y=m.getConstructor(e,t,g,x),o(y.prototype,n),s.NEED=!0;return d(y,t),w[t]=y,r(r.G+r.W+r.F*(y!=b),w),v||m.setStrong(y,t,g),y}},{34:34,36:36,40:40,41:41,46:46,52:52,57:57,66:66,7:7,91:91,92:92,99:99}],24:[function(t,e,n){var a=e.exports={version:"2.5.5"};"number"==typeof __e&&(__e=a)},{}],25:[function(t,e,n){"use strict";var a=t(72),r=t(90);e.exports=function(t,e,n){e in t?a.f(t,e,r(0,n)):t[e]=n}},{72:72,90:90}],26:[function(t,e,n){var a=t(4);e.exports=function(t,e,n){if(a(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,a){return t.call(e,n,a)};case 3:return function(n,a,r){return t.call(e,n,a,r)}}return function(){return t.apply(e,arguments)}}},{4:4}],27:[function(t,e,n){"use strict";var a=t(36),r=Date.prototype.getTime,i=Date.prototype.toISOString,o=function(t){return t>9?t:"0"+t};e.exports=a(function(){return"0385-07-25T07:06:39.999Z"!=i.call(new Date(-5e13-1))})||!a(function(){i.call(new Date(NaN))})?function(){if(!isFinite(r.call(this)))throw RangeError("Invalid time value");var t=this,e=t.getUTCFullYear(),n=t.getUTCMilliseconds(),a=0>e?"-":e>9999?"+":"";return a+("00000"+Math.abs(e)).slice(a?-6:-4)+"-"+o(t.getUTCMonth()+1)+"-"+o(t.getUTCDate())+"T"+o(t.getUTCHours())+":"+o(t.getUTCMinutes())+":"+o(t.getUTCSeconds())+"."+(n>99?n:"0"+o(n))+"Z"}:i},{36:36}],28:[function(t,e,n){"use strict";var a=t(8),r=t(118),i="number";e.exports=function(t){if("string"!==t&&t!==i&&"default"!==t)throw TypeError("Incorrect hint");return r(a(this),t!=i)}},{118:118,8:8}],29:[function(t,e,n){e.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},{}],30:[function(t,e,n){e.exports=!t(36)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{36:36}],31:[function(t,e,n){var a=t(52),r=t(41).document,i=a(r)&&a(r.createElement);e.exports=function(t){return i?r.createElement(t):{}}},{41:41,52:52}],32:[function(t,e,n){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],33:[function(t,e,n){var a=t(81),r=t(78),i=t(82);e.exports=function(t){var e=a(t),n=r.f;if(n)for(var o,s=n(t),u=i.f,p=0;s.length>p;)u.call(t,o=s[p++])&&e.push(o);return e}},{78:78,81:81,82:82}],34:[function(t,e,n){var a=t(41),r=t(24),i=t(43),o=t(92),s=t(26),u="prototype",p=function(t,e,n){var c,l,f,d,h=t&p.F,m=t&p.G,g=t&p.S,v=t&p.P,b=t&p.B,y=m?a:g?a[e]||(a[e]={}):(a[e]||{})[u],x=m?r:r[e]||(r[e]={}),_=x[u]||(x[u]={});m&&(n=e);for(c in n)l=!h&&y&&void 0!==y[c],f=(l?y:n)[c],d=b&&l?s(f,a):v&&"function"==typeof f?s(Function.call,f):f,y&&o(y,c,f,t&p.U),x[c]!=f&&i(x,c,d),v&&_[c]!=f&&(_[c]=f)};a.core=r,p.F=1,p.G=2,p.S=4,p.P=8,p.B=16,p.W=32,p.U=64,p.R=128,e.exports=p},{24:24,26:26,41:41,43:43,92:92}],35:[function(t,e,n){var a=t(127)("match");e.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[a]=!1,!"/./"[t](e)}catch(r){}}return!0}},{127:127}],36:[function(t,e,n){e.exports=function(t){try{return!!t()}catch(e){return!0}}},{}],37:[function(t,e,n){"use strict";var a=t(43),r=t(92),i=t(36),o=t(29),s=t(127);e.exports=function(t,e,n){var u=s(t),p=n(o,u,""[t]),c=p[0],l=p[1];i(function(){var e={};return e[u]=function(){return 7},7!=""[t](e)})&&(r(String.prototype,t,c),a(RegExp.prototype,u,2==e?function(t,e){return l.call(t,this,e)}:function(t){return l.call(t,this)}))}},{127:127,29:29,36:36,43:43,92:92}],38:[function(t,e,n){"use strict";var a=t(8);e.exports=function(){var t=a(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},{8:8}],39:[function(t,e,n){"use strict";function a(t,e,n,p,c,l,f,d){for(var h,m,g=c,v=0,b=f?s(f,d,3):!1;p>v;){if(v in n){if(h=b?b(n[v],v,e):n[v],m=!1,i(h)&&(m=h[u],m=void 0!==m?!!m:r(h)),m&&l>0)g=a(t,e,h,o(h.length),g,l-1)-1;else{if(g>=9007199254740991)throw TypeError();t[g]=h}g++}v++}return g}var r=t(50),i=t(52),o=t(116),s=t(26),u=t(127)("isConcatSpreadable");e.exports=a},{116:116,127:127,26:26,50:50,52:52}],40:[function(t,e,n){var a=t(26),r=t(54),i=t(49),o=t(8),s=t(116),u=t(128),p={},c={},n=e.exports=function(t,e,n,l,f){var d,h,m,g,v=f?function(){return t}:u(t),b=a(n,l,e?2:1),y=0;if("function"!=typeof v)throw TypeError(t+" is not iterable!");if(i(v)){for(d=s(t.length);d>y;y++)if(g=e?b(o(h=t[y])[0],h[1]):b(t[y]),g===p||g===c)return g}else for(m=v.call(t);!(h=m.next()).done;)if(g=r(m,b,h.value,e),g===p||g===c)return g};n.BREAK=p,n.RETURN=c},{116:116,128:128,26:26,49:49,54:54,8:8}],41:[function(t,e,n){var a=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=a)},{}],42:[function(t,e,n){var a={}.hasOwnProperty;e.exports=function(t,e){return a.call(t,e)}},{}],43:[function(t,e,n){var a=t(72),r=t(90);e.exports=t(30)?function(t,e,n){return a.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},{30:30,72:72,90:90}],44:[function(t,e,n){var a=t(41).document;e.exports=a&&a.documentElement},{41:41}],45:[function(t,e,n){e.exports=!t(30)&&!t(36)(function(){return 7!=Object.defineProperty(t(31)("div"),"a",{get:function(){return 7}}).a})},{30:30,31:31,36:36}],46:[function(t,e,n){var a=t(52),r=t(97).set;e.exports=function(t,e,n){var i,o=e.constructor;return o!==n&&"function"==typeof o&&(i=o.prototype)!==n.prototype&&a(i)&&r&&r(t,i),t}},{52:52,97:97}],47:[function(t,e,n){e.exports=function(t,e,n){var a=void 0===n;switch(e.length){case 0:return a?t():t.call(n);case 1:return a?t(e[0]):t.call(n,e[0]);case 2:return a?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return a?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return a?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},{}],48:[function(t,e,n){var a=t(19);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==a(t)?t.split(""):Object(t)}},{19:19}],49:[function(t,e,n){var a=t(59),r=t(127)("iterator"),i=Array.prototype;e.exports=function(t){return void 0!==t&&(a.Array===t||i[r]===t)}},{127:127,59:59}],50:[function(t,e,n){var a=t(19);e.exports=Array.isArray||function(t){return"Array"==a(t)}},{19:19}],51:[function(t,e,n){var a=t(52),r=Math.floor;e.exports=function(t){return!a(t)&&isFinite(t)&&r(t)===t}},{52:52}],52:[function(t,e,n){e.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},{}],53:[function(t,e,n){var a=t(52),r=t(19),i=t(127)("match");e.exports=function(t){var e;return a(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==r(t))}},{127:127,19:19,52:52}],54:[function(t,e,n){var a=t(8);e.exports=function(t,e,n,r){try{return r?e(a(n)[0],n[1]):e(n)}catch(i){var o=t["return"];throw void 0!==o&&a(o.call(t)),i}}},{8:8}],55:[function(t,e,n){"use strict";var a=t(71),r=t(90),i=t(99),o={};t(43)(o,t(127)("iterator"),function(){return this}),e.exports=function(t,e,n){t.prototype=a(o,{next:r(1,n)}),i(t,e+" Iterator")}},{127:127,43:43,71:71,90:90,99:99}],56:[function(t,e,n){"use strict";var a=t(60),r=t(34),i=t(92),o=t(43),s=t(59),u=t(55),p=t(99),c=t(79),l=t(127)("iterator"),f=!([].keys&&"next"in[].keys()),d="@@iterator",h="keys",m="values",g=function(){return this};e.exports=function(t,e,n,v,b,y,x){u(n,e,v);var _,w,k,S=function(t){if(!f&&t in A)return A[t];switch(t){case h:return function(){return new n(this,t)};case m:return function(){return new n(this,t)}}return function(){return new n(this,t)}},E=e+" Iterator",P=b==m,C=!1,A=t.prototype,O=A[l]||A[d]||b&&A[b],T=O||S(b),R=b?P?S("entries"):T:void 0,M="Array"==e?A.entries||O:O;if(M&&(k=c(M.call(new t)),k!==Object.prototype&&k.next&&(p(k,E,!0),a||"function"==typeof k[l]||o(k,l,g))),P&&O&&O.name!==m&&(C=!0,T=function(){return O.call(this)}),a&&!x||!f&&!C&&A[l]||o(A,l,T),s[e]=T,s[E]=g,b)if(_={values:P?T:S(m),keys:y?T:S(h),entries:R},x)for(w in _)w in A||i(A,w,_[w]);else r(r.P+r.F*(f||C),e,_);return _}},{127:127,34:34,43:43,55:55,59:59,60:60,79:79,92:92,99:99}],57:[function(t,e,n){var a=t(127)("iterator"),r=!1;try{var i=[7][a]();i["return"]=function(){r=!0},Array.from(i,function(){throw 2})}catch(o){}e.exports=function(t,e){if(!e&&!r)return!1;var n=!1;try{var i=[7],o=i[a]();o.next=function(){return{done:n=!0}},i[a]=function(){return o},t(i)}catch(s){}return n}},{127:127}],58:[function(t,e,n){e.exports=function(t,e){return{value:e,done:!!t}}},{}],59:[function(t,e,n){e.exports={}},{}],60:[function(t,e,n){e.exports=!1},{}],61:[function(t,e,n){var a=Math.expm1;e.exports=!a||a(10)>22025.465794806718||a(10)<22025.465794806718||-2e-17!=a(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&1e-6>t?t+t*t/2:Math.exp(t)-1}:a},{}],62:[function(t,e,n){var a=t(65),r=Math.pow,i=r(2,-52),o=r(2,-23),s=r(2,127)*(2-o),u=r(2,-126),p=function(t){return t+1/i-1/i};e.exports=Math.fround||function(t){var e,n,r=Math.abs(t),c=a(t);return u>r?c*p(r/u/o)*u*o:(e=(1+o/i)*r,n=e-(e-r),n>s||n!=n?c*(1/0):c*n)}},{65:65}],63:[function(t,e,n){e.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&1e-8>t?t-t*t/2:Math.log(1+t)}},{}],64:[function(t,e,n){e.exports=Math.scale||function(t,e,n,a,r){return 0===arguments.length||t!=t||e!=e||n!=n||a!=a||r!=r?NaN:t===1/0||t===-(1/0)?t:(t-e)*(r-a)/(n-e)+a}},{}],65:[function(t,e,n){e.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:0>t?-1:1}},{}],66:[function(t,e,n){var a=t(122)("meta"),r=t(52),i=t(42),o=t(72).f,s=0,u=Object.isExtensible||function(){return!0},p=!t(36)(function(){return u(Object.preventExtensions({}))}),c=function(t){o(t,a,{value:{i:"O"+ ++s,w:{}}})},l=function(t,e){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,a)){if(!u(t))return"F";if(!e)return"E";c(t)}return t[a].i},f=function(t,e){if(!i(t,a)){if(!u(t))return!0;if(!e)return!1;c(t)}return t[a].w},d=function(t){return p&&h.NEED&&u(t)&&!i(t,a)&&c(t),t},h=e.exports={KEY:a,NEED:!1,fastKey:l,getWeak:f,onFreeze:d}},{122:122,36:36,42:42,52:52,72:72}],67:[function(t,e,n){var a=t(159),r=t(34),i=t(101)("metadata"),o=i.store||(i.store=new(t(265))),s=function(t,e,n){var r=o.get(t);if(!r){if(!n)return;o.set(t,r=new a)}var i=r.get(e);if(!i){if(!n)return;r.set(e,i=new a)}return i},u=function(t,e,n){var a=s(e,n,!1);return void 0===a?!1:a.has(t)},p=function(t,e,n){var a=s(e,n,!1);return void 0===a?void 0:a.get(t)},c=function(t,e,n,a){s(n,a,!0).set(t,e)},l=function(t,e){var n=s(t,e,!1),a=[];return n&&n.forEach(function(t,e){a.push(e)}),a},f=function(t){return void 0===t||"symbol"==typeof t?t:t+""},d=function(t){r(r.S,"Reflect",t)};e.exports={store:o,map:s,has:u,get:p,set:c,keys:l,key:f,exp:d}},{101:101,159:159,265:265,34:34}],68:[function(t,e,n){var a=t(41),r=t(111).set,i=a.MutationObserver||a.WebKitMutationObserver,o=a.process,s=a.Promise,u="process"==t(19)(o);e.exports=function(){var t,e,n,p=function(){var a,r;for(u&&(a=o.domain)&&a.exit();t;){r=t.fn,t=t.next;try{r()}catch(i){throw t?n():e=void 0,i}}e=void 0,a&&a.enter()};if(u)n=function(){o.nextTick(p)};else if(!i||a.navigator&&a.navigator.standalone)if(s&&s.resolve){var c=s.resolve();n=function(){c.then(p)}}else n=function(){r.call(a,p)};else{var l=!0,f=document.createTextNode("");new i(p).observe(f,{characterData:!0}),n=function(){f.data=l=!l}}return function(a){var r={fn:a,next:void 0};e&&(e.next=r),t||(t=r,n()),e=r}}},{111:111,19:19,41:41}],69:[function(t,e,n){"use strict";function a(t){var e,n;this.promise=new t(function(t,a){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=a}),this.resolve=r(e),this.reject=r(n)}var r=t(4);e.exports.f=function(t){return new a(t)}},{4:4}],70:[function(t,e,n){"use strict";var a=t(81),r=t(78),i=t(82),o=t(117),s=t(48),u=Object.assign;e.exports=!u||t(36)(function(){var t={},e={},n=Symbol(),a="abcdefghijklmnopqrst";return t[n]=7,a.split("").forEach(function(t){e[t]=t}),7!=u({},t)[n]||Object.keys(u({},e)).join("")!=a})?function(t,e){for(var n=o(t),u=arguments.length,p=1,c=r.f,l=i.f;u>p;)for(var f,d=s(arguments[p++]),h=c?a(d).concat(c(d)):a(d),m=h.length,g=0;m>g;)l.call(d,f=h[g++])&&(n[f]=d[f]);return n}:u},{117:117,36:36,48:48,78:78,81:81,82:82}],71:[function(t,e,n){var a=t(8),r=t(73),i=t(32),o=t(100)("IE_PROTO"),s=function(){},u="prototype",p=function(){var e,n=t(31)("iframe"),a=i.length,r="<",o=">";for(n.style.display="none",t(44).appendChild(n),n.src="javascript:",e=n.contentWindow.document,e.open(),e.write(r+"script"+o+"document.F=Object"+r+"/script"+o),e.close(),p=e.F;a--;)delete p[u][i[a]];return p()};e.exports=Object.create||function(t,e){var n;return null!==t?(s[u]=a(t),n=new s,s[u]=null,n[o]=t):n=p(),void 0===e?n:r(n,e)}},{100:100,31:31,32:32,44:44,73:73,8:8}],72:[function(t,e,n){var a=t(8),r=t(45),i=t(118),o=Object.defineProperty;n.f=t(30)?Object.defineProperty:function(t,e,n){if(a(t),e=i(e,!0),a(n),r)try{return o(t,e,n)}catch(s){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},{118:118,30:30,45:45,8:8}],73:[function(t,e,n){var a=t(72),r=t(8),i=t(81);e.exports=t(30)?Object.defineProperties:function(t,e){r(t);for(var n,o=i(e),s=o.length,u=0;s>u;)a.f(t,n=o[u++],e[n]);return t}},{30:30,72:72,8:8,81:81}],74:[function(t,e,n){"use strict";e.exports=t(60)||!t(36)(function(){var e=Math.random();__defineSetter__.call(null,e,function(){}),delete t(41)[e]})},{36:36,41:41,60:60}],75:[function(t,e,n){var a=t(82),r=t(90),i=t(115),o=t(118),s=t(42),u=t(45),p=Object.getOwnPropertyDescriptor;n.f=t(30)?p:function(t,e){if(t=i(t),e=o(e,!0),u)try{return p(t,e)}catch(n){}return s(t,e)?r(!a.f.call(t,e),t[e]):void 0}},{115:115,118:118,30:30,42:42,45:45,82:82,90:90}],76:[function(t,e,n){var a=t(115),r=t(77).f,i={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return r(t)}catch(e){return o.slice()}};e.exports.f=function(t){return o&&"[object Window]"==i.call(t)?s(t):r(a(t))}},{115:115,77:77}],77:[function(t,e,n){var a=t(80),r=t(32).concat("length","prototype");n.f=Object.getOwnPropertyNames||function(t){return a(t,r)}},{32:32,80:80}],78:[function(t,e,n){n.f=Object.getOwnPropertySymbols},{}],79:[function(t,e,n){var a=t(42),r=t(117),i=t(100)("IE_PROTO"),o=Object.prototype;e.exports=Object.getPrototypeOf||function(t){return t=r(t),a(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?o:null}},{100:100,117:117,42:42}],80:[function(t,e,n){var a=t(42),r=t(115),i=t(12)(!1),o=t(100)("IE_PROTO");e.exports=function(t,e){var n,s=r(t),u=0,p=[];for(n in s)n!=o&&a(s,n)&&p.push(n);for(;e.length>u;)a(s,n=e[u++])&&(~i(p,n)||p.push(n));return p}},{100:100,115:115,12:12,42:42}],81:[function(t,e,n){var a=t(80),r=t(32);e.exports=Object.keys||function(t){return a(t,r)}},{32:32,80:80}],82:[function(t,e,n){n.f={}.propertyIsEnumerable},{}],83:[function(t,e,n){var a=t(34),r=t(24),i=t(36);e.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],o={};o[t]=e(n),a(a.S+a.F*i(function(){n(1)}),"Object",o)}},{24:24,34:34,36:36}],84:[function(t,e,n){var a=t(81),r=t(115),i=t(82).f;e.exports=function(t){return function(e){for(var n,o=r(e),s=a(o),u=s.length,p=0,c=[];u>p;)i.call(o,n=s[p++])&&c.push(t?[n,o[n]]:o[n]);return c}}},{115:115,81:81,82:82}],85:[function(t,e,n){var a=t(77),r=t(78),i=t(8),o=t(41).Reflect;e.exports=o&&o.ownKeys||function(t){var e=a.f(i(t)),n=r.f;return n?e.concat(n(t)):e}},{41:41,77:77,78:78,8:8}],86:[function(t,e,n){var a=t(41).parseFloat,r=t(109).trim;e.exports=1/a(t(110)+"-0")!==-(1/0)?function(t){var e=r(t+"",3),n=a(e);return 0===n&&"-"==e.charAt(0)?-0:n}:a},{109:109,110:110,41:41}],87:[function(t,e,n){var a=t(41).parseInt,r=t(109).trim,i=t(110),o=/^[-+]?0[xX]/;e.exports=8!==a(i+"08")||22!==a(i+"0x16")?function(t,e){var n=r(t+"",3);return a(n,e>>>0||(o.test(n)?16:10))}:a},{109:109,110:110,41:41}],88:[function(t,e,n){e.exports=function(t){try{return{e:!1,v:t()}}catch(e){return{e:!0,v:e}}}},{}],89:[function(t,e,n){var a=t(8),r=t(52),i=t(69);e.exports=function(t,e){if(a(t),r(e)&&e.constructor===t)return e;var n=i.f(t),o=n.resolve;return o(e),n.promise}},{52:52,69:69,8:8}],90:[function(t,e,n){e.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},{}],91:[function(t,e,n){var a=t(92);e.exports=function(t,e,n){for(var r in e)a(t,r,e[r],n);return t}},{92:92}],92:[function(t,e,n){var a=t(41),r=t(43),i=t(42),o=t(122)("src"),s="toString",u=Function[s],p=(""+u).split(s);t(24).inspectSource=function(t){return u.call(t)},(e.exports=function(t,e,n,s){var u="function"==typeof n;u&&(i(n,"name")||r(n,"name",e)),t[e]!==n&&(u&&(i(n,o)||r(n,o,t[e]?""+t[e]:p.join(e+""))),t===a?t[e]=n:s?t[e]?t[e]=n:r(t,e,n):(delete t[e],r(t,e,n)))})(Function.prototype,s,function(){ -return"function"==typeof this&&this[o]||u.call(this)})},{122:122,24:24,41:41,42:42,43:43}],93:[function(t,e,n){e.exports=function(t,e){var n=e===Object(e)?function(t){return e[t]}:e;return function(e){return(e+"").replace(t,n)}}},{}],94:[function(t,e,n){e.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},{}],95:[function(t,e,n){"use strict";var a=t(34),r=t(4),i=t(26),o=t(40);e.exports=function(t){a(a.S,t,{from:function(t){var e,n,a,s,u=arguments[1];return r(this),e=void 0!==u,e&&r(u),void 0==t?new this:(n=[],e?(a=0,s=i(u,arguments[2],2),o(t,!1,function(t){n.push(s(t,a++))})):o(t,!1,n.push,n),new this(n))}})}},{26:26,34:34,4:4,40:40}],96:[function(t,e,n){"use strict";var a=t(34);e.exports=function(t){a(a.S,t,{of:function(){for(var t=arguments.length,e=Array(t);t--;)e[t]=arguments[t];return new this(e)}})}},{34:34}],97:[function(t,e,n){var a=t(52),r=t(8),i=function(t,e){if(r(t),!a(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,n,a){try{a=t(26)(Function.call,t(75).f(Object.prototype,"__proto__").set,2),a(e,[]),n=!(e instanceof Array)}catch(r){n=!0}return function(t,e){return i(t,e),n?t.__proto__=e:a(t,e),t}}({},!1):void 0),check:i}},{26:26,52:52,75:75,8:8}],98:[function(t,e,n){"use strict";var a=t(41),r=t(72),i=t(30),o=t(127)("species");e.exports=function(t){var e=a[t];i&&e&&!e[o]&&r.f(e,o,{configurable:!0,get:function(){return this}})}},{127:127,30:30,41:41,72:72}],99:[function(t,e,n){var a=t(72).f,r=t(42),i=t(127)("toStringTag");e.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,i)&&a(t,i,{configurable:!0,value:e})}},{127:127,42:42,72:72}],100:[function(t,e,n){var a=t(101)("keys"),r=t(122);e.exports=function(t){return a[t]||(a[t]=r(t))}},{101:101,122:122}],101:[function(t,e,n){var a=t(41),r="__core-js_shared__",i=a[r]||(a[r]={});e.exports=function(t){return i[t]||(i[t]={})}},{41:41}],102:[function(t,e,n){var a=t(8),r=t(4),i=t(127)("species");e.exports=function(t,e){var n,o=a(t).constructor;return void 0===o||void 0==(n=a(o)[i])?e:r(n)}},{127:127,4:4,8:8}],103:[function(t,e,n){"use strict";var a=t(36);e.exports=function(t,e){return!!t&&a(function(){e?t.call(null,function(){},1):t.call(null)})}},{36:36}],104:[function(t,e,n){var a=t(114),r=t(29);e.exports=function(t){return function(e,n){var i,o,s=r(e)+"",u=a(n),p=s.length;return 0>u||u>=p?t?"":void 0:(i=s.charCodeAt(u),55296>i||i>56319||u+1===p||(o=s.charCodeAt(u+1))<56320||o>57343?t?s.charAt(u):i:t?s.slice(u,u+2):(i-55296<<10)+(o-56320)+65536)}}},{114:114,29:29}],105:[function(t,e,n){var a=t(53),r=t(29);e.exports=function(t,e,n){if(a(e))throw TypeError("String#"+n+" doesn't accept regex!");return r(t)+""}},{29:29,53:53}],106:[function(t,e,n){var a=t(34),r=t(36),i=t(29),o=/"/g,s=function(t,e,n,a){var r=i(t)+"",s="<"+e;return""!==n&&(s+=" "+n+'="'+(a+"").replace(o,""")+'"'),s+">"+r+""};e.exports=function(t,e){var n={};n[t]=e(s),a(a.P+a.F*r(function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}),"String",n)}},{29:29,34:34,36:36}],107:[function(t,e,n){var a=t(116),r=t(108),i=t(29);e.exports=function(t,e,n,o){var s=i(t)+"",u=s.length,p=void 0===n?" ":n+"",c=a(e);if(u>=c||""==p)return s;var l=c-u,f=r.call(p,Math.ceil(l/p.length));return f.length>l&&(f=f.slice(0,l)),o?f+s:s+f}},{108:108,116:116,29:29}],108:[function(t,e,n){"use strict";var a=t(114),r=t(29);e.exports=function(t){var e=r(this)+"",n="",i=a(t);if(0>i||i==1/0)throw RangeError("Count can't be negative");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},{114:114,29:29}],109:[function(t,e,n){var a=t(34),r=t(29),i=t(36),o=t(110),s="["+o+"]",u="​…",p=RegExp("^"+s+s+"*"),c=RegExp(s+s+"*$"),l=function(t,e,n){var r={},s=i(function(){return!!o[t]()||u[t]()!=u}),p=r[t]=s?e(f):o[t];n&&(r[n]=p),a(a.P+a.F*s,"String",r)},f=l.trim=function(t,e){return t=r(t)+"",1&e&&(t=t.replace(p,"")),2&e&&(t=t.replace(c,"")),t};e.exports=l},{110:110,29:29,34:34,36:36}],110:[function(t,e,n){e.exports=" \n\x0B\f\r   ᠎              \u2028\u2029\ufeff"},{}],111:[function(t,e,n){var a,r,i,o=t(26),s=t(47),u=t(44),p=t(31),c=t(41),l=c.process,f=c.setImmediate,d=c.clearImmediate,h=c.MessageChannel,m=c.Dispatch,g=0,v={},b="onreadystatechange",y=function(){var t=+this;if(v.hasOwnProperty(t)){var e=v[t];delete v[t],e()}},x=function(t){y.call(t.data)};f&&d||(f=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return v[++g]=function(){s("function"==typeof t?t:Function(t),e)},a(g),g},d=function(t){delete v[t]},"process"==t(19)(l)?a=function(t){l.nextTick(o(y,t,1))}:m&&m.now?a=function(t){m.now(o(y,t,1))}:h?(r=new h,i=r.port2,r.port1.onmessage=x,a=o(i.postMessage,i,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(a=function(t){c.postMessage(t+"","*")},c.addEventListener("message",x,!1)):a=b in p("script")?function(t){u.appendChild(p("script"))[b]=function(){u.removeChild(this),y.call(t)}}:function(t){setTimeout(o(y,t,1),0)}),e.exports={set:f,clear:d}},{19:19,26:26,31:31,41:41,44:44,47:47}],112:[function(t,e,n){var a=t(114),r=Math.max,i=Math.min;e.exports=function(t,e){return t=a(t),0>t?r(t+e,0):i(t,e)}},{114:114}],113:[function(t,e,n){var a=t(114),r=t(116);e.exports=function(t){if(void 0===t)return 0;var e=a(t),n=r(e);if(e!==n)throw RangeError("Wrong length!");return n}},{114:114,116:116}],114:[function(t,e,n){var a=Math.ceil,r=Math.floor;e.exports=function(t){return isNaN(t=+t)?0:(t>0?r:a)(t)}},{}],115:[function(t,e,n){var a=t(48),r=t(29);e.exports=function(t){return a(r(t))}},{29:29,48:48}],116:[function(t,e,n){var a=t(114),r=Math.min;e.exports=function(t){return t>0?r(a(t),9007199254740991):0}},{114:114}],117:[function(t,e,n){var a=t(29);e.exports=function(t){return Object(a(t))}},{29:29}],118:[function(t,e,n){var a=t(52);e.exports=function(t,e){if(!a(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!a(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},{52:52}],119:[function(t,e,n){"use strict";if(t(30)){var a=t(60),r=t(41),i=t(36),o=t(34),s=t(121),u=t(120),p=t(26),c=t(7),l=t(90),f=t(43),d=t(91),h=t(114),m=t(116),g=t(113),v=t(112),b=t(118),y=t(42),x=t(18),_=t(52),w=t(117),k=t(49),S=t(71),E=t(79),P=t(77).f,C=t(128),A=t(122),O=t(127),T=t(13),R=t(12),M=t(102),L=t(140),j=t(59),D=t(57),N=t(98),F=t(10),I=t(9),B=t(72),q=t(75),U=B.f,V=q.f,G=r.RangeError,z=r.TypeError,W=r.Uint8Array,H="ArrayBuffer",Q="Shared"+H,K="BYTES_PER_ELEMENT",Y="prototype",$=Array[Y],J=u.ArrayBuffer,X=u.DataView,Z=T(0),tt=T(2),et=T(3),nt=T(4),at=T(5),rt=T(6),it=R(!0),ot=R(!1),st=L.values,ut=L.keys,pt=L.entries,ct=$.lastIndexOf,lt=$.reduce,ft=$.reduceRight,dt=$.join,ht=$.sort,mt=$.slice,gt=$.toString,vt=$.toLocaleString,bt=O("iterator"),yt=O("toStringTag"),xt=A("typed_constructor"),_t=A("def_constructor"),wt=s.CONSTR,kt=s.TYPED,St=s.VIEW,Et="Wrong length!",Pt=T(1,function(t,e){return Rt(M(t,t[_t]),e)}),Ct=i(function(){return 1===new W(new Uint16Array([1]).buffer)[0]}),At=!!W&&!!W[Y].set&&i(function(){new W(1).set({})}),Ot=function(t,e){var n=h(t);if(0>n||n%e)throw G("Wrong offset!");return n},Tt=function(t){if(_(t)&&kt in t)return t;throw z(t+" is not a typed array!")},Rt=function(t,e){if(!(_(t)&&xt in t))throw z("It is not a typed array constructor!");return new t(e)},Mt=function(t,e){return Lt(M(t,t[_t]),e)},Lt=function(t,e){for(var n=0,a=e.length,r=Rt(t,a);a>n;)r[n]=e[n++];return r},jt=function(t,e,n){U(t,e,{get:function(){return this._d[n]}})},Dt=function(t){var e,n,a,r,i,o,s=w(t),u=arguments.length,c=u>1?arguments[1]:void 0,l=void 0!==c,f=C(s);if(void 0!=f&&!k(f)){for(o=f.call(s),a=[],e=0;!(i=o.next()).done;e++)a.push(i.value);s=a}for(l&&u>2&&(c=p(c,arguments[2],2)),e=0,n=m(s.length),r=Rt(this,n);n>e;e++)r[e]=l?c(s[e],e):s[e];return r},Nt=function(){for(var t=0,e=arguments.length,n=Rt(this,e);e>t;)n[t]=arguments[t++];return n},Ft=!!W&&i(function(){vt.call(new W(1))}),It=function(){return vt.apply(Ft?mt.call(Tt(this)):Tt(this),arguments)},Bt={copyWithin:function(t,e){return I.call(Tt(this),t,e,arguments.length>2?arguments[2]:void 0)},every:function(t){return nt(Tt(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return F.apply(Tt(this),arguments)},filter:function(t){return Mt(this,tt(Tt(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return at(Tt(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return rt(Tt(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){Z(Tt(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return ot(Tt(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return it(Tt(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return dt.apply(Tt(this),arguments)},lastIndexOf:function(t){return ct.apply(Tt(this),arguments)},map:function(t){return Pt(Tt(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return lt.apply(Tt(this),arguments)},reduceRight:function(t){return ft.apply(Tt(this),arguments)},reverse:function(){for(var t,e=this,n=Tt(e).length,a=Math.floor(n/2),r=0;a>r;)t=e[r],e[r++]=e[--n],e[n]=t;return e},some:function(t){return et(Tt(this),t,arguments.length>1?arguments[1]:void 0)},sort:function(t){return ht.call(Tt(this),t)},subarray:function(t,e){var n=Tt(this),a=n.length,r=v(t,a);return new(M(n,n[_t]))(n.buffer,n.byteOffset+r*n.BYTES_PER_ELEMENT,m((void 0===e?a:v(e,a))-r))}},qt=function(t,e){return Mt(this,mt.call(Tt(this),t,e))},Ut=function(t){Tt(this);var e=Ot(arguments[1],1),n=this.length,a=w(t),r=m(a.length),i=0;if(r+e>n)throw G(Et);for(;r>i;)this[e+i]=a[i++]},Vt={entries:function(){return pt.call(Tt(this))},keys:function(){return ut.call(Tt(this))},values:function(){return st.call(Tt(this))}},Gt=function(t,e){return _(t)&&t[kt]&&"symbol"!=typeof e&&e in t&&+e+""==e+""},zt=function(t,e){return Gt(t,e=b(e,!0))?l(2,t[e]):V(t,e)},Wt=function(t,e,n){return!(Gt(t,e=b(e,!0))&&_(n)&&y(n,"value"))||y(n,"get")||y(n,"set")||n.configurable||y(n,"writable")&&!n.writable||y(n,"enumerable")&&!n.enumerable?U(t,e,n):(t[e]=n.value,t)};wt||(q.f=zt,B.f=Wt),o(o.S+o.F*!wt,"Object",{getOwnPropertyDescriptor:zt,defineProperty:Wt}),i(function(){gt.call({})})&&(gt=vt=function(){return dt.call(this)});var Ht=d({},Bt);d(Ht,Vt),f(Ht,bt,Vt.values),d(Ht,{slice:qt,set:Ut,constructor:function(){},toString:gt,toLocaleString:It}),jt(Ht,"buffer","b"),jt(Ht,"byteOffset","o"),jt(Ht,"byteLength","l"),jt(Ht,"length","e"),U(Ht,yt,{get:function(){return this[kt]}}),e.exports=function(t,e,n,u){u=!!u;var p=t+(u?"Clamped":"")+"Array",l="get"+t,d="set"+t,h=r[p],v=h||{},b=h&&E(h),y=!h||!s.ABV,w={},k=h&&h[Y],C=function(t,n){var a=t._d;return a.v[l](n*e+a.o,Ct)},A=function(t,n,a){var r=t._d;u&&(a=(a=Math.round(a))<0?0:a>255?255:255&a),r.v[d](n*e+r.o,a,Ct)},O=function(t,e){U(t,e,{get:function(){return C(this,e)},set:function(t){return A(this,e,t)},enumerable:!0})};y?(h=n(function(t,n,a,r){c(t,h,p,"_d");var i,o,s,u,l=0,d=0;if(_(n)){if(!(n instanceof J||(u=x(n))==H||u==Q))return kt in n?Lt(h,n):Dt.call(h,n);i=n,d=Ot(a,e);var v=n.byteLength;if(void 0===r){if(v%e)throw G(Et);if(o=v-d,0>o)throw G(Et)}else if(o=m(r)*e,o+d>v)throw G(Et);s=o/e}else s=g(n),o=s*e,i=new J(o);for(f(t,"_d",{b:i,o:d,l:o,e:s,v:new X(i)});s>l;)O(t,l++)}),k=h[Y]=S(Ht),f(k,"constructor",h)):i(function(){h(1)})&&i(function(){new h(-1)})&&D(function(t){new h,new h(null),new h(1.5),new h(t)},!0)||(h=n(function(t,n,a,r){c(t,h,p);var i;return _(n)?n instanceof J||(i=x(n))==H||i==Q?void 0!==r?new v(n,Ot(a,e),r):void 0!==a?new v(n,Ot(a,e)):new v(n):kt in n?Lt(h,n):Dt.call(h,n):new v(g(n))}),Z(b!==Function.prototype?P(v).concat(P(b)):P(v),function(t){t in h||f(h,t,v[t])}),h[Y]=k,a||(k.constructor=h));var T=k[bt],R=!!T&&("values"==T.name||void 0==T.name),M=Vt.values;f(h,xt,!0),f(k,kt,p),f(k,St,!0),f(k,_t,h),(u?new h(1)[yt]==p:yt in k)||U(k,yt,{get:function(){return p}}),w[p]=h,o(o.G+o.W+o.F*(h!=v),w),o(o.S,p,{BYTES_PER_ELEMENT:e}),o(o.S+o.F*i(function(){v.of.call(h,1)}),p,{from:Dt,of:Nt}),K in k||f(k,K,e),o(o.P,p,Bt),N(p),o(o.P+o.F*At,p,{set:Ut}),o(o.P+o.F*!R,p,Vt),a||k.toString==gt||(k.toString=gt),o(o.P+o.F*i(function(){new h(1).slice()}),p,{slice:qt}),o(o.P+o.F*(i(function(){return[1,2].toLocaleString()!=new h([1,2]).toLocaleString()})||!i(function(){k.toLocaleString.call([1,2])})),p,{toLocaleString:It}),j[p]=R?T:M,a||R||f(k,bt,M)}}else e.exports=function(){}},{10:10,102:102,112:112,113:113,114:114,116:116,117:117,118:118,12:12,120:120,121:121,122:122,127:127,128:128,13:13,140:140,18:18,26:26,30:30,34:34,36:36,41:41,42:42,43:43,49:49,52:52,57:57,59:59,60:60,7:7,71:71,72:72,75:75,77:77,79:79,9:9,90:90,91:91,98:98}],120:[function(t,e,n){"use strict";function a(t,e,n){var a,r,i,o=Array(n),s=8*n-e-1,u=(1<>1,c=23===e?U(2,-24)-U(2,-77):0,l=0,f=0>t||0===t&&0>1/t?1:0;for(t=q(t),t!=t||t===I?(r=t!=t?1:0,a=u):(a=V(G(t)/z),t*(i=U(2,-a))<1&&(a--,i*=2),t+=a+p>=1?c/i:c*U(2,1-p),t*i>=2&&(a++,i/=2),a+p>=u?(r=0,a=u):a+p>=1?(r=(t*i-1)*U(2,e),a+=p):(r=t*U(2,p-1)*U(2,e),a=0));e>=8;o[l++]=255&r,r/=256,e-=8);for(a=a<0;o[l++]=255&a,a/=256,s-=8);return o[--l]|=128*f,o}function r(t,e,n){var a,r=8*n-e-1,i=(1<>1,s=r-7,u=n-1,p=t[u--],c=127&p;for(p>>=7;s>0;c=256*c+t[u],u--,s-=8);for(a=c&(1<<-s)-1,c>>=-s,s+=e;s>0;a=256*a+t[u],u--,s-=8);if(0===c)c=1-o;else{if(c===i)return a?NaN:p?-I:I;a+=U(2,e),c-=o}return(p?-1:1)*a*U(2,c-e)}function i(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function o(t){return[255&t]}function s(t){return[255&t,t>>8&255]}function u(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function p(t){return a(t,52,8)}function c(t){return a(t,23,4)}function l(t,e,n){P(t[R],e,{get:function(){return this[n]}})}function f(t,e,n,a){var r=+n,i=S(r);if(i+e>t[Y])throw F(L);var o=t[K]._b,s=i+t[$],u=o.slice(s,s+e);return a?u:u.reverse()}function d(t,e,n,a,r,i){var o=+n,s=S(o);if(s+e>t[Y])throw F(L);for(var u=t[K]._b,p=s+t[$],c=a(+r),l=0;e>l;l++)u[p+l]=c[i?l:e-l-1]}var h=t(41),m=t(30),g=t(60),v=t(121),b=t(43),y=t(91),x=t(36),_=t(7),w=t(114),k=t(116),S=t(113),E=t(77).f,P=t(72).f,C=t(10),A=t(99),O="ArrayBuffer",T="DataView",R="prototype",M="Wrong length!",L="Wrong index!",j=h[O],D=h[T],N=h.Math,F=h.RangeError,I=h.Infinity,B=j,q=N.abs,U=N.pow,V=N.floor,G=N.log,z=N.LN2,W="buffer",H="byteLength",Q="byteOffset",K=m?"_b":W,Y=m?"_l":H,$=m?"_o":Q;if(v.ABV){if(!x(function(){j(1)})||!x(function(){new j(-1)})||x(function(){return new j,new j(1.5),new j(NaN),j.name!=O})){j=function(t){return _(this,j),new B(S(t))};for(var J,X=j[R]=B[R],Z=E(B),tt=0;Z.length>tt;)(J=Z[tt++])in j||b(j,J,B[J]);g||(X.constructor=j)}var et=new D(new j(2)),nt=D[R].setInt8;et.setInt8(0,2147483648),et.setInt8(1,2147483649),(et.getInt8(0)||!et.getInt8(1))&&y(D[R],{setInt8:function(t,e){nt.call(this,t,e<<24>>24)},setUint8:function(t,e){nt.call(this,t,e<<24>>24)}},!0)}else j=function(t){_(this,j,O);var e=S(t);this._b=C.call(Array(e),0),this[Y]=e},D=function(t,e,n){_(this,D,T),_(t,j,T);var a=t[Y],r=w(e);if(0>r||r>a)throw F("Wrong offset!");if(n=void 0===n?a-r:k(n),r+n>a)throw F(M);this[K]=t,this[$]=r,this[Y]=n},m&&(l(j,H,"_l"),l(D,W,"_b"),l(D,H,"_l"),l(D,Q,"_o")),y(D[R],{getInt8:function(t){return f(this,1,t)[0]<<24>>24},getUint8:function(t){return f(this,1,t)[0]},getInt16:function(t){var e=f(this,2,t,arguments[1]);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=f(this,2,t,arguments[1]);return e[1]<<8|e[0]},getInt32:function(t){return i(f(this,4,t,arguments[1]))},getUint32:function(t){return i(f(this,4,t,arguments[1]))>>>0},getFloat32:function(t){return r(f(this,4,t,arguments[1]),23,4)},getFloat64:function(t){return r(f(this,8,t,arguments[1]),52,8)},setInt8:function(t,e){d(this,1,t,o,e)},setUint8:function(t,e){d(this,1,t,o,e)},setInt16:function(t,e){d(this,2,t,s,e,arguments[2])},setUint16:function(t,e){d(this,2,t,s,e,arguments[2])},setInt32:function(t,e){d(this,4,t,u,e,arguments[2])},setUint32:function(t,e){d(this,4,t,u,e,arguments[2])},setFloat32:function(t,e){d(this,4,t,c,e,arguments[2])},setFloat64:function(t,e){d(this,8,t,p,e,arguments[2])}});A(j,O),A(D,T),b(D[R],v.VIEW,!0),n[O]=j,n[T]=D},{10:10,113:113,114:114,116:116,121:121,30:30,36:36,41:41,43:43,60:60,7:7,72:72,77:77,91:91,99:99}],121:[function(t,e,n){for(var a,r=t(41),i=t(43),o=t(122),s=o("typed_array"),u=o("view"),p=!(!r.ArrayBuffer||!r.DataView),c=p,l=0,f=9,d="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");f>l;)(a=r[d[l++]])?(i(a.prototype,s,!0),i(a.prototype,u,!0)):c=!1;e.exports={ABV:p,CONSTR:c,TYPED:s,VIEW:u}},{122:122,41:41,43:43}],122:[function(t,e,n){var a=0,r=Math.random();e.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++a+r).toString(36))}},{}],123:[function(t,e,n){var a=t(41),r=a.navigator;e.exports=r&&r.userAgent||""},{41:41}],124:[function(t,e,n){var a=t(52);e.exports=function(t,e){if(!a(t)||t._t!==e)throw TypeError("Incompatible receiver, "+e+" required!");return t}},{52:52}],125:[function(t,e,n){var a=t(41),r=t(24),i=t(60),o=t(126),s=t(72).f;e.exports=function(t){var e=r.Symbol||(r.Symbol=i?{}:a.Symbol||{});"_"==t.charAt(0)||t in e||s(e,t,{value:o.f(t)})}},{126:126,24:24,41:41,60:60,72:72}],126:[function(t,e,n){n.f=t(127)},{127:127}],127:[function(t,e,n){var a=t(101)("wks"),r=t(122),i=t(41).Symbol,o="function"==typeof i,s=e.exports=function(t){return a[t]||(a[t]=o&&i[t]||(o?i:r)("Symbol."+t))};s.store=a},{101:101,122:122,41:41}],128:[function(t,e,n){var a=t(18),r=t(127)("iterator"),i=t(59);e.exports=t(24).getIteratorMethod=function(t){return void 0!=t?t[r]||t["@@iterator"]||i[a(t)]:void 0}},{127:127,18:18,24:24,59:59}],129:[function(t,e,n){var a=t(34),r=t(93)(/[\\^$*+?.()|[\]{}]/g,"\\$&");a(a.S,"RegExp",{escape:function(t){return r(t)}})},{34:34,93:93}],130:[function(t,e,n){var a=t(34);a(a.P,"Array",{copyWithin:t(9)}),t(6)("copyWithin")},{34:34,6:6,9:9}],131:[function(t,e,n){"use strict";var a=t(34),r=t(13)(4);a(a.P+a.F*!t(103)([].every,!0),"Array",{every:function(t){return r(this,t,arguments[1])}})},{103:103,13:13,34:34}],132:[function(t,e,n){var a=t(34);a(a.P,"Array",{fill:t(10)}),t(6)("fill")},{10:10,34:34,6:6}],133:[function(t,e,n){"use strict";var a=t(34),r=t(13)(2);a(a.P+a.F*!t(103)([].filter,!0),"Array",{filter:function(t){return r(this,t,arguments[1])}})},{103:103,13:13,34:34}],134:[function(t,e,n){"use strict";var a=t(34),r=t(13)(6),i="findIndex",o=!0;i in[]&&Array(1)[i](function(){o=!1}),a(a.P+a.F*o,"Array",{findIndex:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),t(6)(i)},{13:13,34:34,6:6}],135:[function(t,e,n){"use strict";var a=t(34),r=t(13)(5),i="find",o=!0;i in[]&&Array(1)[i](function(){o=!1}),a(a.P+a.F*o,"Array",{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),t(6)(i)},{13:13,34:34,6:6}],136:[function(t,e,n){"use strict";var a=t(34),r=t(13)(0),i=t(103)([].forEach,!0);a(a.P+a.F*!i,"Array",{forEach:function(t){return r(this,t,arguments[1])}})},{103:103,13:13,34:34}],137:[function(t,e,n){"use strict";var a=t(26),r=t(34),i=t(117),o=t(54),s=t(49),u=t(116),p=t(25),c=t(128);r(r.S+r.F*!t(57)(function(t){Array.from(t)}),"Array",{from:function(t){var e,n,r,l,f=i(t),d="function"==typeof this?this:Array,h=arguments.length,m=h>1?arguments[1]:void 0,g=void 0!==m,v=0,b=c(f);if(g&&(m=a(m,h>2?arguments[2]:void 0,2)),void 0==b||d==Array&&s(b))for(e=u(f.length),n=new d(e);e>v;v++)p(n,v,g?m(f[v],v):f[v]);else for(l=b.call(f),n=new d;!(r=l.next()).done;v++)p(n,v,g?o(l,m,[r.value,v],!0):r.value);return n.length=v,n}})},{116:116,117:117,128:128,25:25,26:26,34:34,49:49,54:54,57:57}],138:[function(t,e,n){"use strict";var a=t(34),r=t(12)(!1),i=[].indexOf,o=!!i&&1/[1].indexOf(1,-0)<0;a(a.P+a.F*(o||!t(103)(i)),"Array",{indexOf:function(t){return o?i.apply(this,arguments)||0:r(this,t,arguments[1])}})},{103:103,12:12,34:34}],139:[function(t,e,n){var a=t(34);a(a.S,"Array",{isArray:t(50)})},{34:34,50:50}],140:[function(t,e,n){"use strict";var a=t(6),r=t(58),i=t(59),o=t(115);e.exports=t(56)(Array,"Array",function(t,e){this._t=o(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,r(1)):"keys"==e?r(0,n):"values"==e?r(0,t[n]):r(0,[n,t[n]])},"values"),i.Arguments=i.Array,a("keys"),a("values"),a("entries")},{115:115,56:56,58:58,59:59,6:6}],141:[function(t,e,n){"use strict";var a=t(34),r=t(115),i=[].join;a(a.P+a.F*(t(48)!=Object||!t(103)(i)),"Array",{join:function(t){return i.call(r(this),void 0===t?",":t)}})},{103:103,115:115,34:34,48:48}],142:[function(t,e,n){"use strict";var a=t(34),r=t(115),i=t(114),o=t(116),s=[].lastIndexOf,u=!!s&&1/[1].lastIndexOf(1,-0)<0;a(a.P+a.F*(u||!t(103)(s)),"Array",{lastIndexOf:function(t){if(u)return s.apply(this,arguments)||0;var e=r(this),n=o(e.length),a=n-1;for(arguments.length>1&&(a=Math.min(a,i(arguments[1]))),0>a&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}})},{103:103,114:114,115:115,116:116,34:34}],143:[function(t,e,n){"use strict";var a=t(34),r=t(13)(1);a(a.P+a.F*!t(103)([].map,!0),"Array",{map:function(t){return r(this,t,arguments[1])}})},{103:103,13:13,34:34}],144:[function(t,e,n){"use strict";var a=t(34),r=t(25);a(a.S+a.F*t(36)(function(){function t(){}return!(Array.of.call(t)instanceof t)}),"Array",{of:function(){for(var t=0,e=arguments.length,n=new("function"==typeof this?this:Array)(e);e>t;)r(n,t,arguments[t++]);return n.length=e,n}})},{25:25,34:34,36:36}],145:[function(t,e,n){"use strict";var a=t(34),r=t(14);a(a.P+a.F*!t(103)([].reduceRight,!0),"Array",{reduceRight:function(t){return r(this,t,arguments.length,arguments[1],!0)}})},{103:103,14:14,34:34}],146:[function(t,e,n){"use strict";var a=t(34),r=t(14);a(a.P+a.F*!t(103)([].reduce,!0),"Array",{reduce:function(t){return r(this,t,arguments.length,arguments[1],!1)}})},{103:103,14:14,34:34}],147:[function(t,e,n){"use strict";var a=t(34),r=t(44),i=t(19),o=t(112),s=t(116),u=[].slice;a(a.P+a.F*t(36)(function(){r&&u.call(r)}),"Array",{slice:function(t,e){var n=s(this.length),a=i(this);if(e=void 0===e?n:e,"Array"==a)return u.call(this,t,e);for(var r=o(t,n),p=o(e,n),c=s(p-r),l=Array(c),f=0;c>f;f++)l[f]="String"==a?this.charAt(r+f):this[r+f];return l}})},{112:112,116:116,19:19,34:34,36:36,44:44}],148:[function(t,e,n){"use strict";var a=t(34),r=t(13)(3);a(a.P+a.F*!t(103)([].some,!0),"Array",{some:function(t){return r(this,t,arguments[1])}})},{103:103,13:13,34:34}],149:[function(t,e,n){"use strict";var a=t(34),r=t(4),i=t(117),o=t(36),s=[].sort,u=[1,2,3];a(a.P+a.F*(o(function(){u.sort(void 0)})||!o(function(){u.sort(null)})||!t(103)(s)),"Array",{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),r(t))}})},{103:103,117:117,34:34,36:36,4:4}],150:[function(t,e,n){t(98)("Array")},{98:98}],151:[function(t,e,n){var a=t(34);a(a.S,"Date",{now:function(){return(new Date).getTime()}})},{34:34}],152:[function(t,e,n){var a=t(34),r=t(27);a(a.P+a.F*(Date.prototype.toISOString!==r),"Date",{toISOString:r})},{27:27,34:34}],153:[function(t,e,n){"use strict";var a=t(34),r=t(117),i=t(118);a(a.P+a.F*t(36)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function(t){var e=r(this),n=i(e);return"number"!=typeof n||isFinite(n)?e.toISOString():null}})},{117:117,118:118,34:34,36:36}],154:[function(t,e,n){var a=t(127)("toPrimitive"),r=Date.prototype;a in r||t(43)(r,a,t(28))},{127:127,28:28,43:43}],155:[function(t,e,n){var a=Date.prototype,r="Invalid Date",i="toString",o=a[i],s=a.getTime;new Date(NaN)+""!=r&&t(92)(a,i,function(){var t=s.call(this);return t===t?o.call(this):r})},{92:92}],156:[function(t,e,n){var a=t(34);a(a.P,"Function",{bind:t(17)})},{17:17,34:34}],157:[function(t,e,n){"use strict";var a=t(52),r=t(79),i=t(127)("hasInstance"),o=Function.prototype;i in o||t(72).f(o,i,{value:function(t){if("function"!=typeof this||!a(t))return!1;if(!a(this.prototype))return t instanceof this;for(;t=r(t);)if(this.prototype===t)return!0;return!1}})},{127:127,52:52,72:72,79:79}],158:[function(t,e,n){var a=t(72).f,r=Function.prototype,i=/^\s*function ([^ (]*)/,o="name";o in r||t(30)&&a(r,o,{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(t){return""}}})},{30:30,72:72}],159:[function(t,e,n){"use strict";var a=t(20),r=t(124),i="Map";e.exports=t(23)(i,function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function(t){var e=a.getEntry(r(this,i),t);return e&&e.v},set:function(t,e){return a.def(r(this,i),0===t?0:t,e)}},a,!0)},{124:124,20:20,23:23}],160:[function(t,e,n){var a=t(34),r=t(63),i=Math.sqrt,o=Math.acosh;a(a.S+a.F*!(o&&710==Math.floor(o(Number.MAX_VALUE))&&o(1/0)==1/0),"Math",{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:r(t-1+i(t-1)*i(t+1))}})},{34:34,63:63}],161:[function(t,e,n){function a(t){return isFinite(t=+t)&&0!=t?0>t?-a(-t):Math.log(t+Math.sqrt(t*t+1)):t}var r=t(34),i=Math.asinh;r(r.S+r.F*!(i&&1/i(0)>0),"Math",{asinh:a})},{34:34}],162:[function(t,e,n){var a=t(34),r=Math.atanh;a(a.S+a.F*!(r&&1/r(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},{34:34}],163:[function(t,e,n){var a=t(34),r=t(65);a(a.S,"Math",{cbrt:function(t){return r(t=+t)*Math.pow(Math.abs(t),1/3)}})},{34:34,65:65}],164:[function(t,e,n){var a=t(34);a(a.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},{34:34}],165:[function(t,e,n){var a=t(34),r=Math.exp;a(a.S,"Math",{cosh:function(t){return(r(t=+t)+r(-t))/2}})},{34:34}],166:[function(t,e,n){var a=t(34),r=t(61);a(a.S+a.F*(r!=Math.expm1),"Math",{expm1:r})},{34:34,61:61}],167:[function(t,e,n){var a=t(34);a(a.S,"Math",{fround:t(62)})},{34:34,62:62}],168:[function(t,e,n){var a=t(34),r=Math.abs;a(a.S,"Math",{hypot:function(t,e){for(var n,a,i=0,o=0,s=arguments.length,u=0;s>o;)n=r(arguments[o++]),n>u?(a=u/n,i=i*a*a+1,u=n):n>0?(a=n/u,i+=a*a):i+=n;return u===1/0?1/0:u*Math.sqrt(i)}})},{34:34}],169:[function(t,e,n){var a=t(34),r=Math.imul;a(a.S+a.F*t(36)(function(){return-5!=r(4294967295,5)||2!=r.length}),"Math",{imul:function(t,e){var n=65535,a=+t,r=+e,i=n&a,o=n&r;return 0|i*o+((n&a>>>16)*o+i*(n&r>>>16)<<16>>>0)}})},{34:34,36:36}],170:[function(t,e,n){var a=t(34);a(a.S,"Math",{log10:function(t){return Math.log(t)*Math.LOG10E}})},{34:34}],171:[function(t,e,n){var a=t(34);a(a.S,"Math",{log1p:t(63)})},{34:34,63:63}],172:[function(t,e,n){var a=t(34);a(a.S,"Math",{log2:function(t){return Math.log(t)/Math.LN2}})},{34:34}],173:[function(t,e,n){var a=t(34);a(a.S,"Math",{sign:t(65)})},{34:34,65:65}],174:[function(t,e,n){var a=t(34),r=t(61),i=Math.exp;a(a.S+a.F*t(36)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(r(t)-r(-t))/2:(i(t-1)-i(-t-1))*(Math.E/2)}})},{34:34,36:36,61:61}],175:[function(t,e,n){var a=t(34),r=t(61),i=Math.exp;a(a.S,"Math",{tanh:function(t){var e=r(t=+t),n=r(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},{34:34,61:61}],176:[function(t,e,n){var a=t(34);a(a.S,"Math",{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}})},{34:34}],177:[function(t,e,n){"use strict";var a=t(41),r=t(42),i=t(19),o=t(46),s=t(118),u=t(36),p=t(77).f,c=t(75).f,l=t(72).f,f=t(109).trim,d="Number",h=a[d],m=h,g=h.prototype,v=i(t(71)(g))==d,b="trim"in String.prototype,y=function(t){var e=s(t,!1);if("string"==typeof e&&e.length>2){e=b?e.trim():f(e,3);var n,a,r,i=e.charCodeAt(0);if(43===i||45===i){if(n=e.charCodeAt(2),88===n||120===n)return NaN}else if(48===i){switch(e.charCodeAt(1)){case 66:case 98:a=2,r=49;break;case 79:case 111:a=8,r=55;break;default:return+e}for(var o,u=e.slice(2),p=0,c=u.length;c>p;p++)if(o=u.charCodeAt(p),48>o||o>r)return NaN;return parseInt(u,a)}}return+e};if(!h(" 0o1")||!h("0b1")||h("+0x1")){h=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof h&&(v?u(function(){g.valueOf.call(n)}):i(n)!=d)?o(new m(y(e)),n,h):y(e)};for(var x,_=t(30)?p(m):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;_.length>w;w++)r(m,x=_[w])&&!r(h,x)&&l(h,x,c(m,x));h.prototype=g,g.constructor=h,t(92)(a,d,h)}},{109:109,118:118,19:19,30:30,36:36,41:41,42:42,46:46,71:71,72:72,75:75,77:77,92:92}],178:[function(t,e,n){var a=t(34);a(a.S,"Number",{EPSILON:Math.pow(2,-52)})},{34:34}],179:[function(t,e,n){var a=t(34),r=t(41).isFinite;a(a.S,"Number",{isFinite:function(t){return"number"==typeof t&&r(t)}})},{34:34,41:41}],180:[function(t,e,n){var a=t(34);a(a.S,"Number",{isInteger:t(51)})},{34:34,51:51}],181:[function(t,e,n){var a=t(34);a(a.S,"Number",{isNaN:function(t){return t!=t}})},{34:34}],182:[function(t,e,n){var a=t(34),r=t(51),i=Math.abs;a(a.S,"Number",{isSafeInteger:function(t){return r(t)&&i(t)<=9007199254740991}})},{34:34,51:51}],183:[function(t,e,n){var a=t(34);a(a.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},{34:34}],184:[function(t,e,n){var a=t(34);a(a.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},{34:34}],185:[function(t,e,n){var a=t(34),r=t(86);a(a.S+a.F*(Number.parseFloat!=r),"Number",{parseFloat:r})},{34:34,86:86}],186:[function(t,e,n){var a=t(34),r=t(87);a(a.S+a.F*(Number.parseInt!=r),"Number",{parseInt:r})},{34:34,87:87}],187:[function(t,e,n){"use strict";var a=t(34),r=t(114),i=t(5),o=t(108),s=1..toFixed,u=Math.floor,p=[0,0,0,0,0,0],c="Number.toFixed: incorrect invocation!",l="0",f=function(t,e){for(var n=-1,a=e;++n<6;)a+=t*p[n],p[n]=a%1e7,a=u(a/1e7)},d=function(t){for(var e=6,n=0;--e>=0;)n+=p[e],p[e]=u(n/t),n=n%t*1e7},h=function(){for(var t=6,e="";--t>=0;)if(""!==e||0===t||0!==p[t]){var n=p[t]+"";e=""===e?n:e+o.call(l,7-n.length)+n}return e},m=function(t,e,n){return 0===e?n:e%2===1?m(t,e-1,n*t):m(t*t,e/2,n)},g=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e};a(a.P+a.F*(!!s&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==0xde0b6b3a7640080.toFixed(0))||!t(36)(function(){s.call({})})),"Number",{toFixed:function(t){var e,n,a,s,u=i(this,c),p=r(t),v="",b=l;if(0>p||p>20)throw RangeError(c);if(u!=u)return"NaN";if(-1e21>=u||u>=1e21)return u+"";if(0>u&&(v="-",u=-u),u>1e-21)if(e=g(u*m(2,69,1))-69,n=0>e?u*m(2,-e,1):u/m(2,e,1),n*=4503599627370496,e=52-e,e>0){for(f(0,n),a=p;a>=7;)f(1e7,0),a-=7;for(f(m(10,a,1),0),a=e-1;a>=23;)d(1<<23),a-=23;d(1<0?(s=b.length,b=v+(p>=s?"0."+o.call(l,p-s)+b:b.slice(0,s-p)+"."+b.slice(s-p))):b=v+b,b}})},{108:108,114:114,34:34,36:36,5:5}],188:[function(t,e,n){"use strict";var a=t(34),r=t(36),i=t(5),o=1..toPrecision;a(a.P+a.F*(r(function(){return"1"!==o.call(1,void 0)})||!r(function(){o.call({})})),"Number",{toPrecision:function(t){var e=i(this,"Number#toPrecision: incorrect invocation!");return void 0===t?o.call(e):o.call(e,t)}})},{34:34,36:36,5:5}],189:[function(t,e,n){var a=t(34);a(a.S+a.F,"Object",{assign:t(70)})},{34:34,70:70}],190:[function(t,e,n){var a=t(34);a(a.S,"Object",{create:t(71)})},{34:34,71:71}],191:[function(t,e,n){var a=t(34);a(a.S+a.F*!t(30),"Object",{defineProperties:t(73)})},{30:30,34:34,73:73}],192:[function(t,e,n){var a=t(34);a(a.S+a.F*!t(30),"Object",{defineProperty:t(72).f})},{30:30,34:34,72:72}],193:[function(t,e,n){var a=t(52),r=t(66).onFreeze;t(83)("freeze",function(t){return function(e){return t&&a(e)?t(r(e)):e}})},{52:52,66:66,83:83}],194:[function(t,e,n){var a=t(115),r=t(75).f;t(83)("getOwnPropertyDescriptor",function(){return function(t,e){return r(a(t),e)}})},{115:115,75:75,83:83}],195:[function(t,e,n){t(83)("getOwnPropertyNames",function(){return t(76).f})},{76:76,83:83}],196:[function(t,e,n){var a=t(117),r=t(79);t(83)("getPrototypeOf",function(){return function(t){return r(a(t))}})},{117:117,79:79,83:83}],197:[function(t,e,n){var a=t(52);t(83)("isExtensible",function(t){return function(e){return a(e)?t?t(e):!0:!1}})},{52:52,83:83}],198:[function(t,e,n){var a=t(52);t(83)("isFrozen",function(t){return function(e){return a(e)?t?t(e):!1:!0}})},{52:52,83:83}],199:[function(t,e,n){ -var a=t(52);t(83)("isSealed",function(t){return function(e){return a(e)?t?t(e):!1:!0}})},{52:52,83:83}],200:[function(t,e,n){var a=t(34);a(a.S,"Object",{is:t(94)})},{34:34,94:94}],201:[function(t,e,n){var a=t(117),r=t(81);t(83)("keys",function(){return function(t){return r(a(t))}})},{117:117,81:81,83:83}],202:[function(t,e,n){var a=t(52),r=t(66).onFreeze;t(83)("preventExtensions",function(t){return function(e){return t&&a(e)?t(r(e)):e}})},{52:52,66:66,83:83}],203:[function(t,e,n){var a=t(52),r=t(66).onFreeze;t(83)("seal",function(t){return function(e){return t&&a(e)?t(r(e)):e}})},{52:52,66:66,83:83}],204:[function(t,e,n){var a=t(34);a(a.S,"Object",{setPrototypeOf:t(97).set})},{34:34,97:97}],205:[function(t,e,n){"use strict";var a=t(18),r={};r[t(127)("toStringTag")]="z",r+""!="[object z]"&&t(92)(Object.prototype,"toString",function(){return"[object "+a(this)+"]"},!0)},{127:127,18:18,92:92}],206:[function(t,e,n){var a=t(34),r=t(86);a(a.G+a.F*(parseFloat!=r),{parseFloat:r})},{34:34,86:86}],207:[function(t,e,n){var a=t(34),r=t(87);a(a.G+a.F*(parseInt!=r),{parseInt:r})},{34:34,87:87}],208:[function(t,e,n){"use strict";var a,r,i,o,s=t(60),u=t(41),p=t(26),c=t(18),l=t(34),f=t(52),d=t(4),h=t(7),m=t(40),g=t(102),v=t(111).set,b=t(68)(),y=t(69),x=t(88),_=t(89),w="Promise",k=u.TypeError,S=u.process,E=u[w],P="process"==c(S),C=function(){},A=r=y.f,O=!!function(){try{var e=E.resolve(1),n=(e.constructor={})[t(127)("species")]=function(t){t(C,C)};return(P||"function"==typeof PromiseRejectionEvent)&&e.then(C)instanceof n}catch(a){}}(),T=function(t){var e;return f(t)&&"function"==typeof(e=t.then)?e:!1},R=function(t,e){if(!t._n){t._n=!0;var n=t._c;b(function(){for(var a=t._v,r=1==t._s,i=0,o=function(e){var n,i,o,s=r?e.ok:e.fail,u=e.resolve,p=e.reject,c=e.domain;try{s?(r||(2==t._h&&j(t),t._h=1),s===!0?n=a:(c&&c.enter(),n=s(a),c&&(c.exit(),o=!0)),n===e.promise?p(k("Promise-chain cycle")):(i=T(n))?i.call(n,u,p):u(n)):p(a)}catch(l){c&&!o&&c.exit(),p(l)}};n.length>i;)o(n[i++]);t._c=[],t._n=!1,e&&!t._h&&M(t)})}},M=function(t){v.call(u,function(){var e,n,a,r=t._v,i=L(t);if(i&&(e=x(function(){P?S.emit("unhandledRejection",r,t):(n=u.onunhandledrejection)?n({promise:t,reason:r}):(a=u.console)&&a.error&&a.error("Unhandled promise rejection",r)}),t._h=P||L(t)?2:1),t._a=void 0,i&&e.e)throw e.v})},L=function(t){return 1!==t._h&&0===(t._a||t._c).length},j=function(t){v.call(u,function(){var e;P?S.emit("rejectionHandled",t):(e=u.onrejectionhandled)&&e({promise:t,reason:t._v})})},D=function(t){var e=this;e._d||(e._d=!0,e=e._w||e,e._v=t,e._s=2,e._a||(e._a=e._c.slice()),R(e,!0))},N=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw k("Promise can't be resolved itself");(e=T(t))?b(function(){var a={_w:n,_d:!1};try{e.call(t,p(N,a,1),p(D,a,1))}catch(r){D.call(a,r)}}):(n._v=t,n._s=1,R(n,!1))}catch(a){D.call({_w:n,_d:!1},a)}}};O||(E=function(t){h(this,E,w,"_h"),d(t),a.call(this);try{t(p(N,this,1),p(D,this,1))}catch(e){D.call(this,e)}},a=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},a.prototype=t(91)(E.prototype,{then:function(t,e){var n=A(g(this,E));return n.ok="function"==typeof t?t:!0,n.fail="function"==typeof e&&e,n.domain=P?S.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&R(this,!1),n.promise},"catch":function(t){return this.then(void 0,t)}}),i=function(){var t=new a;this.promise=t,this.resolve=p(N,t,1),this.reject=p(D,t,1)},y.f=A=function(t){return t===E||t===o?new i(t):r(t)}),l(l.G+l.W+l.F*!O,{Promise:E}),t(99)(E,w),t(98)(w),o=t(24)[w],l(l.S+l.F*!O,w,{reject:function(t){var e=A(this),n=e.reject;return n(t),e.promise}}),l(l.S+l.F*(s||!O),w,{resolve:function(t){return _(s&&this===o?E:this,t)}}),l(l.S+l.F*!(O&&t(57)(function(t){E.all(t)["catch"](C)})),w,{all:function(t){var e=this,n=A(e),a=n.resolve,r=n.reject,i=x(function(){var n=[],i=0,o=1;m(t,!1,function(t){var s=i++,u=!1;n.push(void 0),o++,e.resolve(t).then(function(t){u||(u=!0,n[s]=t,--o||a(n))},r)}),--o||a(n)});return i.e&&r(i.v),n.promise},race:function(t){var e=this,n=A(e),a=n.reject,r=x(function(){m(t,!1,function(t){e.resolve(t).then(n.resolve,a)})});return r.e&&a(r.v),n.promise}})},{102:102,111:111,127:127,18:18,24:24,26:26,34:34,4:4,40:40,41:41,52:52,57:57,60:60,68:68,69:69,7:7,88:88,89:89,91:91,98:98,99:99}],209:[function(t,e,n){var a=t(34),r=t(4),i=t(8),o=(t(41).Reflect||{}).apply,s=Function.apply;a(a.S+a.F*!t(36)(function(){o(function(){})}),"Reflect",{apply:function(t,e,n){var a=r(t),u=i(n);return o?o(a,e,u):s.call(a,e,u)}})},{34:34,36:36,4:4,41:41,8:8}],210:[function(t,e,n){var a=t(34),r=t(71),i=t(4),o=t(8),s=t(52),u=t(36),p=t(17),c=(t(41).Reflect||{}).construct,l=u(function(){function t(){}return!(c(function(){},[],t)instanceof t)}),f=!u(function(){c(function(){})});a(a.S+a.F*(l||f),"Reflect",{construct:function(t,e){i(t),o(e);var n=arguments.length<3?t:i(arguments[2]);if(f&&!l)return c(t,e,n);if(t==n){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var a=[null];return a.push.apply(a,e),new(p.apply(t,a))}var u=n.prototype,d=r(s(u)?u:Object.prototype),h=Function.apply.call(t,d,e);return s(h)?h:d}})},{17:17,34:34,36:36,4:4,41:41,52:52,71:71,8:8}],211:[function(t,e,n){var a=t(72),r=t(34),i=t(8),o=t(118);r(r.S+r.F*t(36)(function(){Reflect.defineProperty(a.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function(t,e,n){i(t),e=o(e,!0),i(n);try{return a.f(t,e,n),!0}catch(r){return!1}}})},{118:118,34:34,36:36,72:72,8:8}],212:[function(t,e,n){var a=t(34),r=t(75).f,i=t(8);a(a.S,"Reflect",{deleteProperty:function(t,e){var n=r(i(t),e);return n&&!n.configurable?!1:delete t[e]}})},{34:34,75:75,8:8}],213:[function(t,e,n){"use strict";var a=t(34),r=t(8),i=function(t){this._t=r(t),this._i=0;var e,n=this._k=[];for(e in t)n.push(e)};t(55)(i,"Object",function(){var t,e=this,n=e._k;do if(e._i>=n.length)return{value:void 0,done:!0};while(!((t=n[e._i++])in e._t));return{value:t,done:!1}}),a(a.S,"Reflect",{enumerate:function(t){return new i(t)}})},{34:34,55:55,8:8}],214:[function(t,e,n){var a=t(75),r=t(34),i=t(8);r(r.S,"Reflect",{getOwnPropertyDescriptor:function(t,e){return a.f(i(t),e)}})},{34:34,75:75,8:8}],215:[function(t,e,n){var a=t(34),r=t(79),i=t(8);a(a.S,"Reflect",{getPrototypeOf:function(t){return r(i(t))}})},{34:34,79:79,8:8}],216:[function(t,e,n){function a(t,e){var n,s,c=arguments.length<3?t:arguments[2];return p(t)===c?t[e]:(n=r.f(t,e))?o(n,"value")?n.value:void 0!==n.get?n.get.call(c):void 0:u(s=i(t))?a(s,e,c):void 0}var r=t(75),i=t(79),o=t(42),s=t(34),u=t(52),p=t(8);s(s.S,"Reflect",{get:a})},{34:34,42:42,52:52,75:75,79:79,8:8}],217:[function(t,e,n){var a=t(34);a(a.S,"Reflect",{has:function(t,e){return e in t}})},{34:34}],218:[function(t,e,n){var a=t(34),r=t(8),i=Object.isExtensible;a(a.S,"Reflect",{isExtensible:function(t){return r(t),i?i(t):!0}})},{34:34,8:8}],219:[function(t,e,n){var a=t(34);a(a.S,"Reflect",{ownKeys:t(85)})},{34:34,85:85}],220:[function(t,e,n){var a=t(34),r=t(8),i=Object.preventExtensions;a(a.S,"Reflect",{preventExtensions:function(t){r(t);try{return i&&i(t),!0}catch(e){return!1}}})},{34:34,8:8}],221:[function(t,e,n){var a=t(34),r=t(97);r&&a(a.S,"Reflect",{setPrototypeOf:function(t,e){r.check(t,e);try{return r.set(t,e),!0}catch(n){return!1}}})},{34:34,97:97}],222:[function(t,e,n){function a(t,e,n){var u,f,d=arguments.length<4?t:arguments[3],h=i.f(c(t),e);if(!h){if(l(f=o(t)))return a(f,e,n,d);h=p(0)}if(s(h,"value")){if(h.writable===!1||!l(d))return!1;if(u=i.f(d,e)){if(u.get||u.set||u.writable===!1)return!1;u.value=n,r.f(d,e,u)}else r.f(d,e,p(0,n));return!0}return void 0===h.set?!1:(h.set.call(d,n),!0)}var r=t(72),i=t(75),o=t(79),s=t(42),u=t(34),p=t(90),c=t(8),l=t(52);u(u.S,"Reflect",{set:a})},{34:34,42:42,52:52,72:72,75:75,79:79,8:8,90:90}],223:[function(t,e,n){var a=t(41),r=t(46),i=t(72).f,o=t(77).f,s=t(53),u=t(38),p=a.RegExp,c=p,l=p.prototype,f=/a/g,d=/a/g,h=new p(f)!==f;if(t(30)&&(!h||t(36)(function(){return d[t(127)("match")]=!1,p(f)!=f||p(d)==d||"/a/i"!=p(f,"i")}))){p=function(t,e){var n=this instanceof p,a=s(t),i=void 0===e;return!n&&a&&t.constructor===p&&i?t:r(h?new c(a&&!i?t.source:t,e):c((a=t instanceof p)?t.source:t,a&&i?u.call(t):e),n?this:l,p)};for(var m=(function(t){t in p||i(p,t,{configurable:!0,get:function(){return c[t]},set:function(e){c[t]=e}})}),g=o(c),v=0;g.length>v;)m(g[v++]);l.constructor=p,p.prototype=l,t(92)(a,"RegExp",p)}t(98)("RegExp")},{127:127,30:30,36:36,38:38,41:41,46:46,53:53,72:72,77:77,92:92,98:98}],224:[function(t,e,n){t(30)&&"g"!=/./g.flags&&t(72).f(RegExp.prototype,"flags",{configurable:!0,get:t(38)})},{30:30,38:38,72:72}],225:[function(t,e,n){t(37)("match",1,function(t,e,n){return[function(n){"use strict";var a=t(this),r=void 0==n?void 0:n[e];return void 0!==r?r.call(n,a):RegExp(n)[e](a+"")},n]})},{37:37}],226:[function(t,e,n){t(37)("replace",2,function(t,e,n){return[function(a,r){"use strict";var i=t(this),o=void 0==a?void 0:a[e];return void 0!==o?o.call(a,i,r):n.call(i+"",a,r)},n]})},{37:37}],227:[function(t,e,n){t(37)("search",1,function(t,e,n){return[function(n){"use strict";var a=t(this),r=void 0==n?void 0:n[e];return void 0!==r?r.call(n,a):RegExp(n)[e](a+"")},n]})},{37:37}],228:[function(t,e,n){t(37)("split",2,function(e,n,a){"use strict";var r=t(53),i=a,o=[].push,s="split",u="length",p="lastIndex";if("c"=="abbc"[s](/(b)*/)[1]||4!="test"[s](/(?:)/,-1)[u]||2!="ab"[s](/(?:ab)*/)[u]||4!="."[s](/(.?)(.?)/)[u]||"."[s](/()()/)[u]>1||""[s](/.?/)[u]){var c=void 0===/()??/.exec("")[1];a=function(t,e){var n=this+"";if(void 0===t&&0===e)return[];if(!r(t))return i.call(n,t,e);var a,s,l,f,d,h=[],m=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),g=0,v=void 0===e?4294967295:e>>>0,b=RegExp(t.source,m+"g");for(c||(a=RegExp("^"+b.source+"$(?!\\s)",m));(s=b.exec(n))&&(l=s.index+s[0][u],!(l>g&&(h.push(n.slice(g,s.index)),!c&&s[u]>1&&s[0].replace(a,function(){for(d=1;d1&&s.index=v)));)b[p]===s.index&&b[p]++;return g===n[u]?(f||!b.test(""))&&h.push(""):h.push(n.slice(g)),h[u]>v?h.slice(0,v):h}}else"0"[s](void 0,0)[u]&&(a=function(t,e){return void 0===t&&0===e?[]:i.call(this,t,e)});return[function(t,r){var i=e(this),o=void 0==t?void 0:t[n];return void 0!==o?o.call(t,i,r):a.call(i+"",t,r)},a]})},{37:37,53:53}],229:[function(t,e,n){"use strict";t(224);var a=t(8),r=t(38),i=t(30),o="toString",s=/./[o],u=function(e){t(92)(RegExp.prototype,o,e,!0)};t(36)(function(){return"/a/b"!=s.call({source:"a",flags:"b"})})?u(function(){var t=a(this);return"/".concat(t.source,"/","flags"in t?t.flags:!i&&t instanceof RegExp?r.call(t):void 0)}):s.name!=o&&u(function(){return s.call(this)})},{224:224,30:30,36:36,38:38,8:8,92:92}],230:[function(t,e,n){"use strict";var a=t(20),r=t(124),i="Set";e.exports=t(23)(i,function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return a.def(r(this,i),t=0===t?0:t,t)}},a)},{124:124,20:20,23:23}],231:[function(t,e,n){"use strict";t(106)("anchor",function(t){return function(e){return t(this,"a","name",e)}})},{106:106}],232:[function(t,e,n){"use strict";t(106)("big",function(t){return function(){return t(this,"big","","")}})},{106:106}],233:[function(t,e,n){"use strict";t(106)("blink",function(t){return function(){return t(this,"blink","","")}})},{106:106}],234:[function(t,e,n){"use strict";t(106)("bold",function(t){return function(){return t(this,"b","","")}})},{106:106}],235:[function(t,e,n){"use strict";var a=t(34),r=t(104)(!1);a(a.P,"String",{codePointAt:function(t){return r(this,t)}})},{104:104,34:34}],236:[function(t,e,n){"use strict";var a=t(34),r=t(116),i=t(105),o="endsWith",s=""[o];a(a.P+a.F*t(35)(o),"String",{endsWith:function(t){var e=i(this,t,o),n=arguments.length>1?arguments[1]:void 0,a=r(e.length),u=void 0===n?a:Math.min(r(n),a),p=t+"";return s?s.call(e,p,u):e.slice(u-p.length,u)===p}})},{105:105,116:116,34:34,35:35}],237:[function(t,e,n){"use strict";t(106)("fixed",function(t){return function(){return t(this,"tt","","")}})},{106:106}],238:[function(t,e,n){"use strict";t(106)("fontcolor",function(t){return function(e){return t(this,"font","color",e)}})},{106:106}],239:[function(t,e,n){"use strict";t(106)("fontsize",function(t){return function(e){return t(this,"font","size",e)}})},{106:106}],240:[function(t,e,n){var a=t(34),r=t(112),i=String.fromCharCode,o=String.fromCodePoint;a(a.S+a.F*(!!o&&1!=o.length),"String",{fromCodePoint:function(t){for(var e,n=[],a=arguments.length,o=0;a>o;){if(e=+arguments[o++],r(e,1114111)!==e)throw RangeError(e+" is not a valid code point");n.push(65536>e?i(e):i(((e-=65536)>>10)+55296,e%1024+56320))}return n.join("")}})},{112:112,34:34}],241:[function(t,e,n){"use strict";var a=t(34),r=t(105),i="includes";a(a.P+a.F*t(35)(i),"String",{includes:function(t){return!!~r(this,t,i).indexOf(t,arguments.length>1?arguments[1]:void 0)}})},{105:105,34:34,35:35}],242:[function(t,e,n){"use strict";t(106)("italics",function(t){return function(){return t(this,"i","","")}})},{106:106}],243:[function(t,e,n){"use strict";var a=t(104)(!0);t(56)(String,"String",function(t){this._t=t+"",this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=a(e,n),this._i+=t.length,{value:t,done:!1})})},{104:104,56:56}],244:[function(t,e,n){"use strict";t(106)("link",function(t){return function(e){return t(this,"a","href",e)}})},{106:106}],245:[function(t,e,n){var a=t(34),r=t(115),i=t(116);a(a.S,"String",{raw:function(t){for(var e=r(t.raw),n=i(e.length),a=arguments.length,o=[],s=0;n>s;)o.push(e[s++]+""),a>s&&o.push(arguments[s]+"");return o.join("")}})},{115:115,116:116,34:34}],246:[function(t,e,n){var a=t(34);a(a.P,"String",{repeat:t(108)})},{108:108,34:34}],247:[function(t,e,n){"use strict";t(106)("small",function(t){return function(){return t(this,"small","","")}})},{106:106}],248:[function(t,e,n){"use strict";var a=t(34),r=t(116),i=t(105),o="startsWith",s=""[o];a(a.P+a.F*t(35)(o),"String",{startsWith:function(t){var e=i(this,t,o),n=r(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),a=t+"";return s?s.call(e,a,n):e.slice(n,n+a.length)===a}})},{105:105,116:116,34:34,35:35}],249:[function(t,e,n){"use strict";t(106)("strike",function(t){return function(){return t(this,"strike","","")}})},{106:106}],250:[function(t,e,n){"use strict";t(106)("sub",function(t){return function(){return t(this,"sub","","")}})},{106:106}],251:[function(t,e,n){"use strict";t(106)("sup",function(t){return function(){return t(this,"sup","","")}})},{106:106}],252:[function(t,e,n){"use strict";t(109)("trim",function(t){return function(){return t(this,3)}})},{109:109}],253:[function(t,e,n){"use strict";var a=t(41),r=t(42),i=t(30),o=t(34),s=t(92),u=t(66).KEY,p=t(36),c=t(101),l=t(99),f=t(122),d=t(127),h=t(126),m=t(125),g=t(33),v=t(50),b=t(8),y=t(52),x=t(115),_=t(118),w=t(90),k=t(71),S=t(76),E=t(75),P=t(72),C=t(81),A=E.f,O=P.f,T=S.f,R=a.Symbol,M=a.JSON,L=M&&M.stringify,j="prototype",D=d("_hidden"),N=d("toPrimitive"),F={}.propertyIsEnumerable,I=c("symbol-registry"),B=c("symbols"),q=c("op-symbols"),U=Object[j],V="function"==typeof R,G=a.QObject,z=!G||!G[j]||!G[j].findChild,W=i&&p(function(){return 7!=k(O({},"a",{get:function(){return O(this,"a",{value:7}).a}})).a})?function(t,e,n){var a=A(U,e);a&&delete U[e],O(t,e,n),a&&t!==U&&O(U,e,a)}:O,H=function(t){var e=B[t]=k(R[j]);return e._k=t,e},Q=V&&"symbol"==typeof R.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof R},K=function(t,e,n){return t===U&&K(q,e,n),b(t),e=_(e,!0),b(n),r(B,e)?(n.enumerable?(r(t,D)&&t[D][e]&&(t[D][e]=!1),n=k(n,{enumerable:w(0,!1)})):(r(t,D)||O(t,D,w(1,{})),t[D][e]=!0),W(t,e,n)):O(t,e,n)},Y=function(t,e){b(t);for(var n,a=g(e=x(e)),r=0,i=a.length;i>r;)K(t,n=a[r++],e[n]);return t},$=function(t,e){return void 0===e?k(t):Y(k(t),e)},J=function(t){var e=F.call(this,t=_(t,!0));return this===U&&r(B,t)&&!r(q,t)?!1:e||!r(this,t)||!r(B,t)||r(this,D)&&this[D][t]?e:!0},X=function(t,e){if(t=x(t),e=_(e,!0),t!==U||!r(B,e)||r(q,e)){var n=A(t,e);return!n||!r(B,e)||r(t,D)&&t[D][e]||(n.enumerable=!0),n}},Z=function(t){for(var e,n=T(x(t)),a=[],i=0;n.length>i;)r(B,e=n[i++])||e==D||e==u||a.push(e);return a},tt=function(t){for(var e,n=t===U,a=T(n?q:x(t)),i=[],o=0;a.length>o;)r(B,e=a[o++])&&(n?r(U,e):!0)&&i.push(B[e]);return i};V||(R=function(){if(this instanceof R)throw TypeError("Symbol is not a constructor!");var t=f(arguments.length>0?arguments[0]:void 0),e=function(n){this===U&&e.call(q,n),r(this,D)&&r(this[D],t)&&(this[D][t]=!1),W(this,t,w(1,n))};return i&&z&&W(U,t,{configurable:!0,set:e}),H(t)},s(R[j],"toString",function(){return this._k}),E.f=X,P.f=K,t(77).f=S.f=Z,t(82).f=J,t(78).f=tt,i&&!t(60)&&s(U,"propertyIsEnumerable",J,!0),h.f=function(t){return H(d(t))}),o(o.G+o.W+o.F*!V,{Symbol:R});for(var et="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),nt=0;et.length>nt;)d(et[nt++]);for(var at=C(d.store),rt=0;at.length>rt;)m(at[rt++]);o(o.S+o.F*!V,"Symbol",{"for":function(t){return r(I,t+="")?I[t]:I[t]=R(t)},keyFor:function(t){if(!Q(t))throw TypeError(t+" is not a symbol!");for(var e in I)if(I[e]===t)return e},useSetter:function(){z=!0},useSimple:function(){z=!1}}),o(o.S+o.F*!V,"Object",{create:$,defineProperty:K,defineProperties:Y,getOwnPropertyDescriptor:X,getOwnPropertyNames:Z,getOwnPropertySymbols:tt}),M&&o(o.S+o.F*(!V||p(function(){var t=R();return"[null]"!=L([t])||"{}"!=L({a:t})||"{}"!=L(Object(t))})),"JSON",{stringify:function(t){for(var e,n,a=[t],r=1;arguments.length>r;)a.push(arguments[r++]);return n=e=a[1],!y(e)&&void 0===t||Q(t)?void 0:(v(e)||(e=function(t,e){return"function"==typeof n&&(e=n.call(this,t,e)),Q(e)?void 0:e}),a[1]=e,L.apply(M,a))}}),R[j][N]||t(43)(R[j],N,R[j].valueOf),l(R,"Symbol"),l(Math,"Math",!0),l(a.JSON,"JSON",!0)},{101:101,115:115,118:118,122:122,125:125,126:126,127:127,30:30,33:33,34:34,36:36,41:41,42:42,43:43,50:50,52:52,60:60,66:66,71:71,72:72,75:75,76:76,77:77,78:78,8:8,81:81,82:82,90:90,92:92,99:99}],254:[function(t,e,n){"use strict";var a=t(34),r=t(121),i=t(120),o=t(8),s=t(112),u=t(116),p=t(52),c=t(41).ArrayBuffer,l=t(102),f=i.ArrayBuffer,d=i.DataView,h=r.ABV&&c.isView,m=f.prototype.slice,g=r.VIEW,v="ArrayBuffer";a(a.G+a.W+a.F*(c!==f),{ArrayBuffer:f}),a(a.S+a.F*!r.CONSTR,v,{isView:function(t){return h&&h(t)||p(t)&&g in t}}),a(a.P+a.U+a.F*t(36)(function(){return!new f(2).slice(1,void 0).byteLength}),v,{slice:function(t,e){if(void 0!==m&&void 0===e)return m.call(o(this),t);for(var n=o(this).byteLength,a=s(t,n),r=s(void 0===e?n:e,n),i=new(l(this,f))(u(r-a)),p=new d(this),c=new d(i),h=0;r>a;)c.setUint8(h++,p.getUint8(a++));return i}}),t(98)(v)},{102:102,112:112,116:116,120:120,121:121,34:34,36:36,41:41,52:52,8:8,98:98}],255:[function(t,e,n){var a=t(34);a(a.G+a.W+a.F*!t(121).ABV,{DataView:t(120).DataView})},{120:120,121:121,34:34}],256:[function(t,e,n){t(119)("Float32",4,function(t){return function(e,n,a){return t(this,e,n,a)}})},{119:119}],257:[function(t,e,n){t(119)("Float64",8,function(t){return function(e,n,a){return t(this,e,n,a)}})},{119:119}],258:[function(t,e,n){t(119)("Int16",2,function(t){return function(e,n,a){return t(this,e,n,a)}})},{119:119}],259:[function(t,e,n){t(119)("Int32",4,function(t){return function(e,n,a){return t(this,e,n,a)}})},{119:119}],260:[function(t,e,n){t(119)("Int8",1,function(t){return function(e,n,a){return t(this,e,n,a)}})},{119:119}],261:[function(t,e,n){t(119)("Uint16",2,function(t){return function(e,n,a){return t(this,e,n,a)}})},{119:119}],262:[function(t,e,n){t(119)("Uint32",4,function(t){return function(e,n,a){return t(this,e,n,a)}})},{119:119}],263:[function(t,e,n){t(119)("Uint8",1,function(t){return function(e,n,a){return t(this,e,n,a)}})},{119:119}],264:[function(t,e,n){t(119)("Uint8",1,function(t){return function(e,n,a){return t(this,e,n,a)}},!0)},{119:119}],265:[function(t,e,n){"use strict";var a,r=t(13)(0),i=t(92),o=t(66),s=t(70),u=t(22),p=t(52),c=t(36),l=t(124),f="WeakMap",d=o.getWeak,h=Object.isExtensible,m=u.ufstore,g={},v=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},b={get:function(t){if(p(t)){var e=d(t);return e===!0?m(l(this,f)).get(t):e?e[this._i]:void 0}},set:function(t,e){return u.def(l(this,f),t,e)}},y=e.exports=t(23)(f,v,b,u,!0,!0);c(function(){return 7!=(new y).set((Object.freeze||Object)(g),7).get(g)})&&(a=u.getConstructor(v,f),s(a.prototype,b),o.NEED=!0,r(["delete","has","get","set"],function(t){var e=y.prototype,n=e[t];i(e,t,function(e,r){if(p(e)&&!h(e)){this._f||(this._f=new a);var i=this._f[t](e,r);return"set"==t?this:i}return n.call(this,e,r)})}))},{124:124,13:13,22:22,23:23,36:36,52:52,66:66,70:70,92:92}],266:[function(t,e,n){"use strict";var a=t(22),r=t(124),i="WeakSet";t(23)(i,function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return a.def(r(this,i),t,!0)}},a,!1,!0)},{124:124,22:22,23:23}],267:[function(t,e,n){"use strict";var a=t(34),r=t(39),i=t(117),o=t(116),s=t(4),u=t(16);a(a.P,"Array",{flatMap:function(t){var e,n,a=i(this);return s(t),e=o(a.length),n=u(a,0),r(n,a,a,e,0,1,t,arguments[1]),n}}),t(6)("flatMap")},{116:116,117:117,16:16,34:34,39:39,4:4,6:6}],268:[function(t,e,n){"use strict";var a=t(34),r=t(39),i=t(117),o=t(116),s=t(114),u=t(16);a(a.P,"Array",{flatten:function(){var t=arguments[0],e=i(this),n=o(e.length),a=u(e,0);return r(a,e,e,n,0,void 0===t?1:s(t)),a}}),t(6)("flatten")},{114:114,116:116,117:117,16:16,34:34,39:39,6:6}],269:[function(t,e,n){"use strict";var a=t(34),r=t(12)(!0);a(a.P,"Array",{includes:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),t(6)("includes")},{12:12,34:34,6:6}],270:[function(t,e,n){var a=t(34),r=t(68)(),i=t(41).process,o="process"==t(19)(i);a(a.G,{asap:function(t){var e=o&&i.domain;r(e?e.bind(t):t)}})},{19:19,34:34,41:41,68:68}],271:[function(t,e,n){var a=t(34),r=t(19);a(a.S,"Error",{isError:function(t){return"Error"===r(t)}})},{19:19,34:34}],272:[function(t,e,n){var a=t(34);a(a.G,{global:t(41)})},{34:34,41:41}],273:[function(t,e,n){t(95)("Map")},{95:95}],274:[function(t,e,n){t(96)("Map")},{96:96}],275:[function(t,e,n){var a=t(34);a(a.P+a.R,"Map",{toJSON:t(21)("Map")})},{21:21,34:34}],276:[function(t,e,n){var a=t(34);a(a.S,"Math",{clamp:function(t,e,n){return Math.min(n,Math.max(e,t))}})},{34:34}],277:[function(t,e,n){var a=t(34);a(a.S,"Math",{DEG_PER_RAD:Math.PI/180})},{34:34}],278:[function(t,e,n){var a=t(34),r=180/Math.PI;a(a.S,"Math",{degrees:function(t){return t*r}})},{34:34}],279:[function(t,e,n){var a=t(34),r=t(64),i=t(62);a(a.S,"Math",{fscale:function(t,e,n,a,o){return i(r(t,e,n,a,o))}})},{34:34,62:62,64:64}],280:[function(t,e,n){var a=t(34);a(a.S,"Math",{iaddh:function(t,e,n,a){var r=t>>>0,i=e>>>0,o=n>>>0;return i+(a>>>0)+((r&o|(r|o)&~(r+o>>>0))>>>31)|0}})},{34:34}],281:[function(t,e,n){var a=t(34);a(a.S,"Math",{imulh:function(t,e){var n=65535,a=+t,r=+e,i=a&n,o=r&n,s=a>>16,u=r>>16,p=(s*o>>>0)+(i*o>>>16);return s*u+(p>>16)+((i*u>>>0)+(p&n)>>16)}})},{34:34}],282:[function(t,e,n){var a=t(34);a(a.S,"Math",{isubh:function(t,e,n,a){var r=t>>>0,i=e>>>0,o=n>>>0;return i-(a>>>0)-((~r&o|~(r^o)&r-o>>>0)>>>31)|0}})},{34:34}],283:[function(t,e,n){var a=t(34);a(a.S,"Math",{RAD_PER_DEG:180/Math.PI})},{34:34}],284:[function(t,e,n){var a=t(34),r=Math.PI/180;a(a.S,"Math",{radians:function(t){return t*r}})},{34:34}],285:[function(t,e,n){var a=t(34);a(a.S,"Math",{scale:t(64)})},{34:34,64:64}],286:[function(t,e,n){var a=t(34);a(a.S,"Math",{signbit:function(t){return(t=+t)!=t?t:0==t?1/t==1/0:t>0}})},{34:34}],287:[function(t,e,n){var a=t(34);a(a.S,"Math",{umulh:function(t,e){var n=65535,a=+t,r=+e,i=a&n,o=r&n,s=a>>>16,u=r>>>16,p=(s*o>>>0)+(i*o>>>16);return s*u+(p>>>16)+((i*u>>>0)+(p&n)>>>16)}})},{34:34}],288:[function(t,e,n){"use strict";var a=t(34),r=t(117),i=t(4),o=t(72);t(30)&&a(a.P+t(74),"Object",{__defineGetter__:function(t,e){o.f(r(this),t,{get:i(e),enumerable:!0,configurable:!0})}})},{117:117,30:30,34:34,4:4,72:72,74:74}],289:[function(t,e,n){"use strict";var a=t(34),r=t(117),i=t(4),o=t(72);t(30)&&a(a.P+t(74),"Object",{__defineSetter__:function(t,e){o.f(r(this),t,{set:i(e),enumerable:!0,configurable:!0})}})},{117:117,30:30,34:34,4:4,72:72,74:74}],290:[function(t,e,n){var a=t(34),r=t(84)(!0);a(a.S,"Object",{entries:function(t){return r(t)}})},{34:34,84:84}],291:[function(t,e,n){var a=t(34),r=t(85),i=t(115),o=t(75),s=t(25);a(a.S,"Object",{getOwnPropertyDescriptors:function(t){for(var e,n,a=i(t),u=o.f,p=r(a),c={},l=0;p.length>l;)n=u(a,e=p[l++]),void 0!==n&&s(c,e,n);return c}})},{115:115,25:25,34:34,75:75,85:85}],292:[function(t,e,n){"use strict";var a=t(34),r=t(117),i=t(118),o=t(79),s=t(75).f;t(30)&&a(a.P+t(74),"Object",{__lookupGetter__:function(t){var e,n=r(this),a=i(t,!0);do if(e=s(n,a))return e.get;while(n=o(n))}})},{117:117,118:118,30:30,34:34,74:74,75:75,79:79}],293:[function(t,e,n){"use strict";var a=t(34),r=t(117),i=t(118),o=t(79),s=t(75).f;t(30)&&a(a.P+t(74),"Object",{__lookupSetter__:function(t){var e,n=r(this),a=i(t,!0);do if(e=s(n,a))return e.set;while(n=o(n))}})},{117:117,118:118,30:30,34:34,74:74,75:75,79:79}],294:[function(t,e,n){var a=t(34),r=t(84)(!1);a(a.S,"Object",{values:function(t){return r(t)}})},{34:34,84:84}],295:[function(t,e,n){"use strict";var a=t(34),r=t(41),i=t(24),o=t(68)(),s=t(127)("observable"),u=t(4),p=t(8),c=t(7),l=t(91),f=t(43),d=t(40),h=d.RETURN,m=function(t){return null==t?void 0:u(t)},g=function(t){var e=t._c;e&&(t._c=void 0,e())},v=function(t){return void 0===t._o},b=function(t){v(t)||(t._o=void 0,g(t))},y=function(t,e){p(t),this._c=void 0,this._o=t,t=new x(this);try{var n=e(t),a=n;null!=n&&("function"==typeof n.unsubscribe?n=function(){a.unsubscribe()}:u(n),this._c=n)}catch(r){return void t.error(r)}v(this)&&g(this)};y.prototype=l({},{unsubscribe:function(){b(this)}});var x=function(t){this._s=t};x.prototype=l({},{next:function(t){var e=this._s;if(!v(e)){var n=e._o;try{var a=m(n.next);if(a)return a.call(n,t)}catch(r){try{b(e)}finally{throw r}}}},error:function(t){var e=this._s;if(v(e))throw t;var n=e._o;e._o=void 0;try{var a=m(n.error);if(!a)throw t;t=a.call(n,t)}catch(r){try{g(e)}finally{throw r}}return g(e),t},complete:function(t){var e=this._s;if(!v(e)){var n=e._o;e._o=void 0;try{var a=m(n.complete);t=a?a.call(n,t):void 0}catch(r){try{g(e)}finally{throw r}}return g(e),t}}});var _=function(t){c(this,_,"Observable","_f")._f=u(t)};l(_.prototype,{subscribe:function(t){return new y(t,this._f)},forEach:function(t){var e=this;return new(i.Promise||r.Promise)(function(n,a){u(t);var r=e.subscribe({next:function(e){try{return t(e)}catch(n){a(n),r.unsubscribe()}},error:a,complete:n})})}}),l(_,{from:function(t){var e="function"==typeof this?this:_,n=m(p(t)[s]);if(n){var a=p(n.call(t));return a.constructor===e?a:new e(function(t){return a.subscribe(t)})}return new e(function(e){var n=!1;return o(function(){if(!n){try{if(d(t,!1,function(t){return e.next(t),n?h:void 0})===h)return}catch(a){if(n)throw a;return void e.error(a)}e.complete()}}),function(){n=!0}})},of:function(){for(var t=0,e=arguments.length,n=Array(e);e>t;)n[t]=arguments[t++];return new("function"==typeof this?this:_)(function(t){var e=!1;return o(function(){if(!e){for(var a=0;a1?arguments[1]:void 0,!1)}})},{107:107,123:123,34:34}],313:[function(t,e,n){"use strict";var a=t(34),r=t(107),i=t(123);a(a.P+a.F*/Version\/10\.\d+(\.\d+)? Safari\//.test(i),"String",{padStart:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0,!0)}})},{107:107,123:123,34:34}],314:[function(t,e,n){"use strict";t(109)("trimLeft",function(t){return function(){return t(this,1)}},"trimStart")},{109:109}],315:[function(t,e,n){"use strict";t(109)("trimRight",function(t){return function(){return t(this,2)}},"trimEnd")},{109:109}],316:[function(t,e,n){t(125)("asyncIterator")},{125:125}],317:[function(t,e,n){t(125)("observable")},{125:125}],318:[function(t,e,n){var a=t(34);a(a.S,"System",{global:t(41)})},{34:34,41:41}],319:[function(t,e,n){t(95)("WeakMap")},{95:95}],320:[function(t,e,n){t(96)("WeakMap")},{96:96}],321:[function(t,e,n){t(95)("WeakSet")},{95:95}],322:[function(t,e,n){t(96)("WeakSet")},{96:96}],323:[function(t,e,n){for(var a=t(140),r=t(81),i=t(92),o=t(41),s=t(43),u=t(59),p=t(127),c=p("iterator"),l=p("toStringTag"),f=u.Array,d={ -CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},h=r(d),m=0;m2,r=a?o.call(arguments,2):!1;return t(a?function(){("function"==typeof e?e:Function(e)).apply(this,r)}:e,n)}};r(r.G+r.B+r.F*s,{setTimeout:u(a.setTimeout),setInterval:u(a.setInterval)})},{123:123,34:34,41:41}],326:[function(t,e,n){t(253),t(190),t(192),t(191),t(194),t(196),t(201),t(195),t(193),t(203),t(202),t(198),t(199),t(197),t(189),t(200),t(204),t(205),t(156),t(158),t(157),t(207),t(206),t(177),t(187),t(188),t(178),t(179),t(180),t(181),t(182),t(183),t(184),t(185),t(186),t(160),t(161),t(162),t(163),t(164),t(165),t(166),t(167),t(168),t(169),t(170),t(171),t(172),t(173),t(174),t(175),t(176),t(240),t(245),t(252),t(243),t(235),t(236),t(241),t(246),t(248),t(231),t(232),t(233),t(234),t(237),t(238),t(239),t(242),t(244),t(247),t(249),t(250),t(251),t(151),t(153),t(152),t(155),t(154),t(139),t(137),t(144),t(141),t(147),t(149),t(136),t(143),t(133),t(148),t(131),t(146),t(145),t(138),t(142),t(130),t(132),t(135),t(134),t(150),t(140),t(223),t(229),t(224),t(225),t(226),t(227),t(228),t(208),t(159),t(230),t(265),t(266),t(254),t(255),t(260),t(263),t(264),t(258),t(261),t(259),t(262),t(256),t(257),t(209),t(210),t(211),t(212),t(213),t(216),t(214),t(215),t(217),t(218),t(219),t(220),t(222),t(221),t(269),t(267),t(268),t(310),t(313),t(312),t(314),t(315),t(311),t(316),t(317),t(291),t(294),t(290),t(288),t(289),t(292),t(293),t(275),t(309),t(274),t(308),t(320),t(322),t(273),t(307),t(319),t(321),t(272),t(318),t(271),t(276),t(277),t(278),t(279),t(280),t(282),t(281),t(283),t(284),t(285),t(287),t(286),t(296),t(297),t(298),t(299),t(301),t(300),t(303),t(302),t(304),t(305),t(306),t(270),t(295),t(325),t(324),t(323),e.exports=t(24)},{130:130,131:131,132:132,133:133,134:134,135:135,136:136,137:137,138:138,139:139,140:140,141:141,142:142,143:143,144:144,145:145,146:146,147:147,148:148,149:149,150:150,151:151,152:152,153:153,154:154,155:155,156:156,157:157,158:158,159:159,160:160,161:161,162:162,163:163,164:164,165:165,166:166,167:167,168:168,169:169,170:170,171:171,172:172,173:173,174:174,175:175,176:176,177:177,178:178,179:179,180:180,181:181,182:182,183:183,184:184,185:185,186:186,187:187,188:188,189:189,190:190,191:191,192:192,193:193,194:194,195:195,196:196,197:197,198:198,199:199,200:200,201:201,202:202,203:203,204:204,205:205,206:206,207:207,208:208,209:209,210:210,211:211,212:212,213:213,214:214,215:215,216:216,217:217,218:218,219:219,220:220,221:221,222:222,223:223,224:224,225:225,226:226,227:227,228:228,229:229,230:230,231:231,232:232,233:233,234:234,235:235,236:236,237:237,238:238,239:239,24:24,240:240,241:241,242:242,243:243,244:244,245:245,246:246,247:247,248:248,249:249,250:250,251:251,252:252,253:253,254:254,255:255,256:256,257:257,258:258,259:259,260:260,261:261,262:262,263:263,264:264,265:265,266:266,267:267,268:268,269:269,270:270,271:271,272:272,273:273,274:274,275:275,276:276,277:277,278:278,279:279,280:280,281:281,282:282,283:283,284:284,285:285,286:286,287:287,288:288,289:289,290:290,291:291,292:292,293:293,294:294,295:295,296:296,297:297,298:298,299:299,300:300,301:301,302:302,303:303,304:304,305:305,306:306,307:307,308:308,309:309,310:310,311:311,312:312,313:313,314:314,315:315,316:316,317:317,318:318,319:319,320:320,321:321,322:322,323:323,324:324,325:325}],327:[function(t,e,n){!function(t){"use strict";function e(){return c.createDocumentFragment()}function n(t){return c.createElement(t)}function a(t){if(1===t.length)return r(t[0]);for(var n=e(),a=B.call(t),i=0;i-1}}([].indexOf||function(t){for(q=this.length;q--&&this[q]!==t;);return q}),item:function(t){return this[t]||null},remove:function(){for(var t,e=0;e=u?e(i):document.fonts.load(p(i,i.family),s).then(function(e){1<=e.length?t(i):setTimeout(f,25)},function(){e(i)})};f()}else n(function(){function n(){var e;(e=-1!=g&&-1!=v||-1!=g&&-1!=b||-1!=v&&-1!=b)&&((e=g!=v&&g!=b&&v!=b)||(null===l&&(e=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent),l=!!e&&(536>parseInt(e[1],10)||536===parseInt(e[1],10)&&11>=parseInt(e[2],10))),e=l&&(g==y&&v==y&&b==y||g==x&&v==x&&b==x||g==_&&v==_&&b==_)),e=!e),e&&(null!==w.parentNode&&w.parentNode.removeChild(w),clearTimeout(k),t(i))}function f(){if((new Date).getTime()-c>=u)null!==w.parentNode&&w.parentNode.removeChild(w),e(i);else{var t=document.hidden;(!0===t||void 0===t)&&(g=d.a.offsetWidth,v=h.a.offsetWidth,b=m.a.offsetWidth,n()),k=setTimeout(f,50)}}var d=new a(s),h=new a(s),m=new a(s),g=-1,v=-1,b=-1,y=-1,x=-1,_=-1,w=document.createElement("div"),k=0;w.dir="ltr",r(d,p(i,"sans-serif")),r(h,p(i,"serif")),r(m,p(i,"monospace")),w.appendChild(d.a),w.appendChild(h.a),w.appendChild(m.a),document.body.appendChild(w),y=d.a.offsetWidth,x=h.a.offsetWidth,_=m.a.offsetWidth,f(),o(d,function(t){g=t,n()}),r(d,p(i,'"'+i.family+'",sans-serif')),o(h,function(t){v=t,n()}),r(h,p(i,'"'+i.family+'",serif')),o(m,function(t){b=t,n()}),r(m,p(i,'"'+i.family+'",monospace'))})})},window.FontFaceObserver=s,window.FontFaceObserver.prototype.check=s.prototype.a,void 0!==e&&(e.exports=window.FontFaceObserver)}()},{}],330:[function(t,e,n){!function(t,n){function a(t,e){var n=t.createElement("p"),a=t.getElementsByTagName("head")[0]||t.documentElement;return n.innerHTML="x",a.insertBefore(n.lastChild,a.firstChild)}function r(){var t=x.elements;return"string"==typeof t?t.split(" "):t}function i(t,e){var n=x.elements;"string"!=typeof n&&(n=n.join(" ")),"string"!=typeof t&&(t=t.join(" ")),x.elements=n+" "+t,c(e)}function o(t){var e=y[t[v]];return e||(e={},b++,t[v]=b,y[b]=e),e}function s(t,e,a){if(e||(e=n),f)return e.createElement(t);a||(a=o(e));var r;return r=a.cache[t]?a.cache[t].cloneNode():g.test(t)?(a.cache[t]=a.createElem(t)).cloneNode():a.createElem(t),!r.canHaveChildren||m.test(t)||r.tagUrn?r:a.frag.appendChild(r)}function u(t,e){if(t||(t=n),f)return t.createDocumentFragment();e=e||o(t);for(var a=e.frag.cloneNode(),i=0,s=r(),u=s.length;u>i;i++)a.createElement(s[i]);return a}function p(t,e){e.cache||(e.cache={},e.createElem=t.createElement,e.createFrag=t.createDocumentFragment,e.frag=e.createFrag()),t.createElement=function(n){return x.shivMethods?s(n,t,e):e.createElem(n)},t.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+r().join().replace(/[\w\-:]+/g,function(t){return e.createElem(t),e.frag.createElement(t),'c("'+t+'")'})+");return n}")(x,e.frag)}function c(t){t||(t=n);var e=o(t);return!x.shivCSS||l||e.hasCSS||(e.hasCSS=!!a(t,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),f||p(t,e),t}var l,f,d="3.7.3-pre",h=t.html5||{},m=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,g=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",b=0,y={};!function(){try{var t=n.createElement("a");t.innerHTML="",l="hidden"in t,f=1==t.childNodes.length||function(){n.createElement("a");var t=n.createDocumentFragment();return void 0===t.cloneNode||void 0===t.createDocumentFragment||void 0===t.createElement}()}catch(e){l=!0,f=!0}}();var x={elements:h.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:d,shivCSS:h.shivCSS!==!1,supportsUnknownElements:f,shivMethods:h.shivMethods!==!1,type:"default",shivDocument:c,createElement:s,createDocumentFragment:u,addElements:i};t.html5=x,c(n),"object"==typeof e&&e.exports&&(e.exports=x)}("undefined"!=typeof window?window:this,document)},{}],331:[function(t,e,n){(function(t){(function(t){!function(t){function e(t,e,n,a){for(var i,o,s=n.slice(),u=r(e,t),p=0,c=s.length;c>p&&(i=s[p],"object"==typeof i?"function"==typeof i.handleEvent&&i.handleEvent(u):i.call(t,u),!u.stoppedImmediatePropagation);p++);return o=!u.stoppedPropagation,a&&o&&t.parentNode?t.parentNode.dispatchEvent(u):!u.defaultPrevented}function n(t,e){return{configurable:!0,get:t,set:e}}function a(t,e,a){var r=y(e||t,a);v(t,"textContent",n(function(){return r.get.call(this)},function(t){r.set.call(this,t)}))}function r(t,e){return t.currentTarget=e,t.eventPhase=t.target===t.currentTarget?2:3,t}function i(t,e){for(var n=t.length;n--&&t[n]!==e;);return n}function o(){if("BR"===this.tagName)return"\n";for(var t=this.firstChild,e=[];t;)8!==t.nodeType&&7!==t.nodeType&&e.push(t.textContent),t=t.nextSibling;return e.join("")}function s(t){var e=document.createEvent("Event");e.initEvent("input",!0,!0),(t.srcElement||t.fromElement||document).dispatchEvent(e)}function u(t){!d&&S.test(document.readyState)&&(d=!d,document.detachEvent(h,u),t=document.createEvent("Event"),t.initEvent(m,!0,!0),document.dispatchEvent(t))}function p(t){return function(){return C[t]||document.body&&document.body[t]||0}}function c(t){for(var e;e=this.lastChild;)this.removeChild(e);null!=t&&this.appendChild(document.createTextNode(t))}function l(e,n){return n||(n=t.event),n.target||(n.target=n.srcElement||n.fromElement||document),n.timeStamp||(n.timeStamp=(new Date).getTime()),n}if(!document.createEvent){var f=!0,d=!1,h="onreadystatechange",m="DOMContentLoaded",g="__IE8__"+Math.random(),v=Object.defineProperty||function(t,e,n){t[e]=n.value},b=Object.defineProperties||function(e,n){for(var a in n)if(x.call(n,a))try{v(e,a,n[a])}catch(r){t.console&&console.log(a+" failed on object:",e,r.message)}},y=Object.getOwnPropertyDescriptor,x=Object.prototype.hasOwnProperty,_=t.Element.prototype,w=t.Text.prototype,k=/^[a-z]+$/,S=/loaded|complete/,E={},P=document.createElement("div"),C=document.documentElement,A=C.removeAttribute,O=C.setAttribute,T=function(t){return{enumerable:!0,writable:!0,configurable:!0,value:t}};a(t.HTMLCommentElement.prototype,_,"nodeValue"),a(t.HTMLScriptElement.prototype,null,"text"),a(w,null,"nodeValue"),a(t.HTMLTitleElement.prototype,null,"text"),v(t.HTMLStyleElement.prototype,"textContent",function(t){return n(function(){return t.get.call(this.styleSheet)},function(e){t.set.call(this.styleSheet,e)})}(y(t.CSSStyleSheet.prototype,"cssText")));var R=/\b\s*alpha\s*\(\s*opacity\s*=\s*(\d+)\s*\)/;v(t.CSSStyleDeclaration.prototype,"opacity",{get:function(){var t=this.filter.match(R);return t?""+t[1]/100:""},set:function(t){this.zoom=1;var e=!1;t=1>t?" alpha(opacity="+Math.round(100*t)+")":"",this.filter=this.filter.replace(R,function(){return e=!0,t}),!e&&t&&(this.filter+=t)}}),b(_,{textContent:{get:o,set:c},firstElementChild:{get:function(){for(var t=this.childNodes||[],e=0,n=t.length;n>e;e++)if(1==t[e].nodeType)return t[e]}},lastElementChild:{get:function(){for(var t=this.childNodes||[],e=t.length;e--;)if(1==t[e].nodeType)return t[e]}},oninput:{get:function(){return this._oninput||null},set:function(t){this._oninput&&(this.removeEventListener("input",this._oninput),this._oninput=t,t&&this.addEventListener("input",t))}},previousElementSibling:{get:function(){for(var t=this.previousSibling;t&&1!=t.nodeType;)t=t.previousSibling;return t}},nextElementSibling:{get:function(){for(var t=this.nextSibling;t&&1!=t.nodeType;)t=t.nextSibling;return t}},childElementCount:{get:function(){for(var t=0,e=this.childNodes||[],n=e.length;n--;t+=1==e[n].nodeType);return t}},addEventListener:T(function(t,n,a){if("function"==typeof n||"object"==typeof n){var r,o,u=this,p="on"+t,c=u[g]||v(u,g,{value:{}})[g],f=c[p]||(c[p]={}),d=f.h||(f.h=[]);if(!x.call(f,"w")){if(f.w=function(t){return t[g]||e(u,l(u,t),d,!1)},!x.call(E,p))if(k.test(t)){try{r=document.createEventObject(),r[g]=!0,9!=u.nodeType&&(null==u.parentNode&&P.appendChild(u),(o=u.getAttribute(p))&&A.call(u,p)),u.fireEvent(p,r),E[p]=!0}catch(h){for(E[p]=!1;P.hasChildNodes();)P.removeChild(P.firstChild)}null!=o&&O.call(u,p,o)}else E[p]=!1;(f.n=E[p])&&u.attachEvent(p,f.w)}i(d,n)<0&&d[a?"unshift":"push"](n),"input"===t&&u.attachEvent("onkeyup",s)}}),dispatchEvent:T(function(t){var n,a=this,r="on"+t.type,i=a[g],o=i&&i[r],s=!!o;return t.target||(t.target=a),s?o.n?a.fireEvent(r,t):e(a,t,o.h,!0):(n=a.parentNode)?n.dispatchEvent(t):!0,!t.defaultPrevented}),removeEventListener:T(function(t,e,n){if("function"==typeof e||"object"==typeof e){var a=this,r="on"+t,o=a[g],s=o&&o[r],u=s&&s.h,p=u?i(u,e):-1;p>-1&&u.splice(p,1)}})}),b(w,{addEventListener:T(_.addEventListener),dispatchEvent:T(_.dispatchEvent),removeEventListener:T(_.removeEventListener)}),b(t.XMLHttpRequest.prototype,{addEventListener:T(function(t,e,n){var a=this,r="on"+t,o=a[g]||v(a,g,{value:{}})[g],s=o[r]||(o[r]={}),u=s.h||(s.h=[]);i(u,e)<0&&(a[r]||(a[r]=function(){var e=document.createEvent("Event");e.initEvent(t,!0,!0),a.dispatchEvent(e)}),u[n?"unshift":"push"](e))}),dispatchEvent:T(function(t){var n=this,a="on"+t.type,r=n[g],i=r&&r[a],o=!!i;return o&&(i.n?n.fireEvent(a,t):e(n,t,i.h,!0))}),removeEventListener:T(_.removeEventListener)});var M=y(Event.prototype,"button").get;b(t.Event.prototype,{bubbles:T(!0),cancelable:T(!0),preventDefault:T(function(){this.cancelable&&(this.returnValue=!1)}),stopPropagation:T(function(){this.stoppedPropagation=!0,this.cancelBubble=!0}),stopImmediatePropagation:T(function(){this.stoppedImmediatePropagation=!0,this.stopPropagation()}),initEvent:T(function(t,e,n){this.type=t,this.bubbles=!!e,this.cancelable=!!n,this.bubbles||this.stopPropagation()}),pageX:{get:function(){return this._pageX||(this._pageX=this.clientX+t.scrollX-(C.clientLeft||0))}},pageY:{get:function(){return this._pageY||(this._pageY=this.clientY+t.scrollY-(C.clientTop||0))}},which:{get:function(){return this.keyCode?this.keyCode:isNaN(this.button)?void 0:this.button+1}},charCode:{get:function(){return this.keyCode&&"keypress"==this.type?this.keyCode:0}},buttons:{get:function(){return M.call(this)}},button:{get:function(){var t=this.buttons;return 1&t?0:2&t?2:4&t?1:void 0}},defaultPrevented:{get:function(){var t,e=this.returnValue;return!(e===t||e)}},relatedTarget:{get:function(){var t=this.type;return"mouseover"===t?this.fromElement:"mouseout"===t?this.toElement:null}}}),b(t.HTMLDocument.prototype,{defaultView:{get:function(){return this.parentWindow}},textContent:{get:function(){return 11===this.nodeType?o.call(this):null},set:function(t){11===this.nodeType&&c.call(this,t)}},addEventListener:T(function(e,n,a){var r=this;_.addEventListener.call(r,e,n,a),f&&e===m&&!S.test(r.readyState)&&(f=!1,r.attachEvent(h,u),t==top&&!function i(t){try{r.documentElement.doScroll("left"),u()}catch(e){setTimeout(i,50)}}())}),dispatchEvent:T(_.dispatchEvent),removeEventListener:T(_.removeEventListener),createEvent:T(function(t){var e;if("Event"!==t)throw Error("unsupported "+t);return e=document.createEventObject(),e.timeStamp=(new Date).getTime(),e})}),b(t.Window.prototype,{getComputedStyle:T(function(){function t(t){this._=t}function e(){}var n=/^(?:[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/,a=/^(top|right|bottom|left)$/,r=/\-([a-z])/g,i=function(t,e){return e.toUpperCase()};return t.prototype.getPropertyValue=function(t){var e,o,s,u=this._,p=u.style,c=u.currentStyle,l=u.runtimeStyle;return"opacity"==t?p.opacity||"1":(t=("float"===t?"style-float":t).replace(r,i),e=c?c[t]:p[t],n.test(e)&&!a.test(t)&&(o=p.left,s=l&&l.left,s&&(l.left=c.left),p.left="fontSize"===t?"1em":e,e=p.pixelLeft+"px",p.left=o,s&&(l.left=s)),null==e?e:e+""||"auto")},e.prototype.getPropertyValue=function(){return null},function(n,a){return a?new e(n):new t(n)}}()),addEventListener:T(function(n,a,r){var o,s=t,u="on"+n;s[u]||(s[u]=function(t){return e(s,l(s,t),o,!1)&&void 0}),o=s[u][g]||(s[u][g]=[]),i(o,a)<0&&o[r?"unshift":"push"](a)}),dispatchEvent:T(function(e){var n=t["on"+e.type];return n?n.call(t,e)!==!1&&!e.defaultPrevented:!0}),removeEventListener:T(function(e,n,a){var r="on"+e,o=(t[r]||Object)[g],s=o?i(o,n):-1;s>-1&&o.splice(s,1)}),pageXOffset:{get:p("scrollLeft")},pageYOffset:{get:p("scrollTop")},scrollX:{get:p("scrollLeft")},scrollY:{get:p("scrollTop")},innerWidth:{get:p("clientWidth")},innerHeight:{get:p("clientHeight")}}),t.HTMLElement=t.Element,function(t,e,n){for(n=0;na;a++)e.appendChild(n[a].cloneNode(!0));return e},n.cloneRange=function(){var t=new e;return t._start=this._start,t._end=this._end,t},n.deleteContents=function(){for(var e=this._start.parentNode,n=t(this._start,this._end),a=0,r=n.length;r>a;a++)e.removeChild(n[a])},n.extractContents=function(){for(var e=this._start.ownerDocument.createDocumentFragment(),n=t(this._start,this._end),a=0,r=n.length;r>a;a++)e.appendChild(n[a]);return e},n.setEndAfter=function(t){this._end=t},n.setEndBefore=function(t){this._end=t.previousSibling},n.setStartAfter=function(t){this._start=t.nextSibling},n.setStartBefore=function(t){this._start=t}}}()}}(this.window||t)}).call(this,void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],332:[function(t,e,n){"use strict";function a(t){return t&&t.__esModule?t:{"default":t}}function r(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e=s)return(0,u["default"])({points:n});for(var l=1;s-1>=l;l++)i.push((0,p.times)(a,(0,p.minus)(n[l],n[l-1])));for(var f=[(0,p.plus)(n[0],c(i[0],i[1]))],l=1;s-2>=l;l++)f.push((0,p.minus)(n[l],(0,p.average)([i[l],i[l-1]])));f.push((0,p.minus)(n[s-1],c(i[s-2],i[s-3])));var d=f[0],h=f[1],m=n[0],g=n[1],v=(e=(0,o["default"])()).moveto.apply(e,r(m)).curveto(d[0],d[1],h[0],h[1],g[0],g[1]);return{path:(0,p.range)(2,s).reduce(function(t,e){var a=f[e],r=n[e];return t.smoothcurveto(a[0],a[1],r[0],r[1])},v),centroid:(0,p.average)(n)}},e.exports=n["default"]},{335:335,336:336,337:337}],333:[function(t,e,n){"use strict";function a(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(n,"__esModule",{value:!0});var r=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(u){r=!0,i=u}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=t(334),o=a(i),s=t(335),u=1e-5,p=function(t,e){var n=t.map(e),a=n.sort(function(t,e){var n=r(t,2),a=n[0],i=(n[1],r(e,2)),o=i[0];i[1];return a-o}),i=a.length,o=a[0][0],p=a[i-1][0],c=(0,s.minBy)(a,function(t){return t[1]}),l=(0,s.maxBy)(a,function(t){return t[1]});return o==p&&(p+=u),c==l&&(l+=u),{points:a,xmin:o,xmax:p,ymin:c,ymax:l}};n["default"]=function(t){var e=t.data,n=t.xaccessor,a=t.yaccessor,i=t.width,u=t.height,c=t.closed,l=t.min,f=t.max;n||(n=function(t){var e=r(t,2),n=e[0];e[1];return n}),a||(a=function(t){var e=r(t,2),n=(e[0],e[1]);return n});var d=function(t){return[n(t),a(t)]},h=e.map(function(t){return p(t,d)}),m=(0,s.minBy)(h,function(t){return t.xmin}),g=(0,s.maxBy)(h,function(t){return t.xmax}),v=null==l?(0,s.minBy)(h,function(t){return t.ymin}):l,b=null==f?(0,s.maxBy)(h,function(t){return t.ymax}):f;c&&(v=Math.min(v,0),b=Math.max(b,0));var y=c?0:v,x=(0,o["default"])([m,g],[0,i]),_=(0,o["default"])([v,b],[u,0]),w=function(t){var e=r(t,2),n=e[0],a=e[1];return[x(n),_(a)]};return{arranged:h,scale:w,xscale:x,yscale:_,base:y}},e.exports=n["default"]},{334:334,335:335}],334:[function(t,e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(u){r=!0,i=u}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),r=function i(t,e){var n=a(t,2),r=n[0],o=n[1],s=a(e,2),u=s[0],p=s[1],c=function(t){return u+(p-u)*(t-r)/(o-r)};return c.inverse=function(){return i([u,p],[r,o])},c};n["default"]=r,e.exports=n["default"]},{}],335:[function(t,e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(u){r=!0,i=u}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),r=function(t){return t.reduce(function(t,e){return t+e},0)},i=function(t){return t.reduce(function(t,e){return Math.min(t,e)})},o=function(t){return t.reduce(function(t,e){return Math.max(t,e)})},s=function(t,e){return t.reduce(function(t,n){return t+e(n)},0)},u=function(t,e){return t.reduce(function(t,n){return Math.min(t,e(n))},1/0)},p=function(t,e){return t.reduce(function(t,n){return Math.max(t,e(n))},-(1/0))},c=function(t,e){var n=a(t,2),r=n[0],i=n[1],o=a(e,2),s=o[0],u=o[1];return[r+s,i+u]},l=function(t,e){var n=a(t,2),r=n[0],i=n[1],o=a(e,2),s=o[0],u=o[1];return[r-s,i-u]},f=function(t,e){var n=a(e,2),r=n[0],i=n[1];return[t*r,t*i]},d=function(t){var e=a(t,2),n=e[0],r=e[1];return Math.sqrt(n*n+r*r)},h=function(t){return t.reduce(c,[0,0])},m=function(t){return f(1/t.length,t.reduce(c))},g=function(t,e){return f(t,[Math.sin(e),-Math.cos(e)])},v=function(t,e){var n=t||{};for(var a in n){var r=n[a];e[a]=r(e.index,e.item,e.group)}return e},b=function(t,e,n){for(var a=[],r=t;e>r;r++)a.push(r);return n&&a.push(e),a},y=function(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=Object.keys(t)[Symbol.iterator]();!(a=(o=s.next()).done);a=!0){var u=o.value,p=t[u];n.push(e(u,p))}}catch(c){r=!0,i=c}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n},x=function(t){return y(t,function(t,e){return[t,e]})},_=function(t){return t};n.sum=r,n.min=i,n.max=o,n.sumBy=s,n.minBy=u,n.maxBy=p,n.plus=c,n.minus=l,n.times=f,n.id=_,n.length=d,n.sumVectors=h,n.average=m,n.onCircle=g,n.enhance=v,n.range=b,n.mapObject=y,n.pairs=x,n["default"]={ -sum:r,min:i,max:o,sumBy:s,minBy:u,maxBy:p,plus:c,minus:l,times:f,id:_,length:d,sumVectors:h,average:m,onCircle:g,enhance:v,range:b,mapObject:y,pairs:x}},{}],336:[function(t,e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(u){r=!0,i=u}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),r=function i(t){var e=t||[],n=function(t,e){var n=t.slice(0,t.length);return n.push(e),n},r=function(t,e){var n=a(t,2),r=n[0],i=n[1],o=a(e,2),s=o[0],u=o[1];return r===s&&i===u},o=function(t,e){for(var n=t.length;"0"===t.charAt(n-1);)n-=1;return"."===t.charAt(n-1)&&(n-=1),t.substr(0,n)},s=function(t,e){var n=t.toFixed(e);return o(n)},u=function(t){var e=t.command,n=t.params,a=n.map(function(t){return s(t,6)});return e+" "+a.join(" ")},p=function(t,e){var n=t.command,r=t.params,i=a(e,2),o=i[0],s=i[1];switch(n){case"M":return[r[0],r[1]];case"L":return[r[0],r[1]];case"H":return[r[0],s];case"V":return[o,r[0]];case"Z":return null;case"C":return[r[4],r[5]];case"S":return[r[2],r[3]];case"Q":return[r[2],r[3]];case"T":return[r[0],r[1]];case"A":return[r[5],r[6]]}},c=function(t,e){return function(n){var a="object"==typeof n?t.map(function(t){return n[t]}):arguments;return e.apply(null,a)}},l=function(t){return i(n(e,t))};return{moveto:c(["x","y"],function(t,e){return l({command:"M",params:[t,e]})}),lineto:c(["x","y"],function(t,e){return l({command:"L",params:[t,e]})}),hlineto:c(["x"],function(t){return l({command:"H",params:[t]})}),vlineto:c(["y"],function(t){return l({command:"V",params:[t]})}),closepath:function(){return l({command:"Z",params:[]})},curveto:c(["x1","y1","x2","y2","x","y"],function(t,e,n,a,r,i){return l({command:"C",params:[t,e,n,a,r,i]})}),smoothcurveto:c(["x2","y2","x","y"],function(t,e,n,a){return l({command:"S",params:[t,e,n,a]})}),qcurveto:c(["x1","y1","x","y"],function(t,e,n,a){return l({command:"Q",params:[t,e,n,a]})}),smoothqcurveto:c(["x","y"],function(t,e){return l({command:"T",params:[t,e]})}),arc:c(["rx","ry","xrot","largeArcFlag","sweepFlag","x","y"],function(t,e,n,a,r,i,o){return l({command:"A",params:[t,e,n,a,r,i,o]})}),print:function(){return e.map(u).join(" ")},points:function(){var t=[],n=[0,0],a=!0,r=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(a=(o=s.next()).done);a=!0){var u=o.value,c=p(u,n);n=c,c&&t.push(c)}}catch(l){r=!0,i=l}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return t},instructions:function(){return e.slice(0,e.length)},connect:function(t){var e=this.points(),n=e[e.length-1],a=t.points()[0],o=t.instructions().slice(1);return r(n,a)||o.unshift({command:"L",params:a}),i(this.instructions().concat(o))}}};n["default"]=function(){return r()},e.exports=n["default"]},{}],337:[function(t,e,n){"use strict";function a(t){return t&&t.__esModule?t:{"default":t}}function r(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e1?e-1:0),a=1;e>a;a++)n[a-1]=arguments[a];for(var r,i;i=n.shift();)for(r in i)Mo.call(i,r)&&(t[r]=i[r]);return t}function r(t){for(var e=arguments.length,n=Array(e>1?e-1:0),a=1;e>a;a++)n[a-1]=arguments[a];return n.forEach(function(e){for(var n in e)!e.hasOwnProperty(n)||n in t||(t[n]=e[n])}),t}function i(t){return"[object Array]"===Lo.call(t)}function o(t){return jo.test(Lo.call(t))}function s(t,e){return null===t&&null===e?!0:"object"==typeof t||"object"==typeof e?!1:t===e}function u(t){return!isNaN(parseFloat(t))&&isFinite(t)}function p(t){return t&&"[object Object]"===Lo.call(t)}function c(t,e){return t.replace(/%s/g,function(){return e.shift()})}function l(t){for(var e=arguments.length,n=Array(e>1?e-1:0),a=1;e>a;a++)n[a-1]=arguments[a];throw t=c(t,n),Error(t)}function f(){Mg.DEBUG&&Oo.apply(null,arguments)}function d(t){for(var e=arguments.length,n=Array(e>1?e-1:0),a=1;e>a;a++)n[a-1]=arguments[a];t=c(t,n),To(t,n)}function h(t){for(var e=arguments.length,n=Array(e>1?e-1:0),a=1;e>a;a++)n[a-1]=arguments[a];t=c(t,n),Do[t]||(Do[t]=!0,To(t,n))}function m(){Mg.DEBUG&&d.apply(null,arguments)}function g(){Mg.DEBUG&&h.apply(null,arguments)}function v(t,e,n){var a=b(t,e,n);return a?a[t][n]:null}function b(t,e,n){for(;e;){if(n in e[t])return e;if(e.isolated)return null;e=e.parent}}function y(t){return function(){return t}}function x(t){var e,n,a,r,i,o;for(e=t.split("."),(n=zo[e.length])||(n=_(e.length)),i=[],a=function(t,n){return t?"*":e[n]},r=n.length;r--;)o=n[r].map(a).join("."),i.hasOwnProperty(o)||(i.push(o),i[o]=!0);return i}function _(t){var e,n,a,r,i,o,s,u,p="";if(!zo[t]){for(a=[];p.length=i;i+=1){for(n=i.toString(2);n.lengtho;o++)u.push(r(n[o]));a[i]=u}zo[t]=a}return zo[t]}function w(t,e,n,a){var r=t[e];if(!r||!r.equalsOrStartsWith(a)&&r.equalsOrStartsWith(n))return t[e]=r?r.replace(n,a):a,!0}function k(t){var e=t.slice(2);return"i"===t[1]&&u(e)?+e:e}function S(t){return null==t?t:(Qo.hasOwnProperty(t)||(Qo[t]=new Ko(t)),Qo[t])}function E(t,e){function n(e,n){var a,r,o;return n.isRoot?o=[].concat(Object.keys(t.viewmodel.data),Object.keys(t.viewmodel.mappings),Object.keys(t.viewmodel.computations)):(a=t.viewmodel.wrapped[n.str],r=a?a.get():t.viewmodel.get(n),o=r?Object.keys(r):null),o&&o.forEach(function(t){"_ractive"===t&&i(r)||e.push(n.join(t))}),e}var a,r,o;for(a=e.str.split("."),o=[$o];r=a.shift();)"*"===r?o=o.reduce(n,[]):o[0]===$o?o[0]=S(r):o=o.map(P(r));return o}function P(t){return function(e){return e.join(t)}}function C(t){return t?t.replace(Wo,".$1"):""}function A(t,e,n){if("string"!=typeof e||!u(n))throw Error("Bad arguments");var a=void 0,r=void 0;if(/\*/.test(e))return r={},E(t,S(C(e))).forEach(function(e){var a=t.viewmodel.get(e);if(!u(a))throw Error(Xo);r[e.str]=a+n}),t.set(r);if(a=t.get(e),!u(a))throw Error(Xo);return t.set(e,+a+n)}function O(t,e){return Jo(this,t,void 0===e?1:+e)}function T(t){this.event=t,this.method="on"+t,this.deprecate=as[t]}function R(t,e){var n=t.indexOf(e);-1===n&&t.push(e)}function M(t,e){for(var n=0,a=t.length;a>n;n++)if(t[n]==e)return!0;return!1}function L(t,e){var n;if(!i(t)||!i(e))return!1;if(t.length!==e.length)return!1;for(n=t.length;n--;)if(t[n]!==e[n])return!1;return!0}function j(t){return"string"==typeof t?[t]:void 0===t?[]:t}function D(t){return t[t.length-1]}function N(t,e){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}function F(t){for(var e=[],n=t.length;n--;)e[n]=t[n];return e}function I(t){setTimeout(t,0)}function B(t,e){return function(){for(var n;n=t.shift();)n(e)}}function q(t,e,n,a){var r;if(e===t)throw new TypeError("A promise's fulfillment handler cannot return the same promise");if(e instanceof rs)e.then(n,a);else if(!e||"object"!=typeof e&&"function"!=typeof e)n(e);else{try{r=e.then}catch(i){return void a(i)}if("function"==typeof r){var o,s,u;s=function(e){o||(o=!0,q(t,e,n,a))},u=function(t){o||(o=!0,a(t))};try{r.call(e,s,u)}catch(i){if(!o)return a(i),void(o=!0)}}else n(e)}}function U(t,e,n){var a;return e=C(e),"~/"===e.substr(0,2)?(a=S(e.substring(2)),z(t,a.firstKey,n)):"."===e[0]?(a=V(cs(n),e),a&&z(t,a.firstKey,n)):a=G(t,S(e),n),a}function V(t,e){var n;if(void 0!=t&&"string"!=typeof t&&(t=t.str),"."===e)return S(t);if(n=t?t.split("."):[],"../"===e.substr(0,3)){for(;"../"===e.substr(0,3);){if(!n.length)throw Error('Could not resolve reference - too many "../" prefixes');n.pop(),e=e.substring(3)}return n.push(e),S(n.join("."))}return S(t?t+e.replace(/^\.\//,"."):e.replace(/^\.\/?/,""))}function G(t,e,n,a){var r,i,o,s,u;if(e.isRoot)return e;for(i=e.firstKey;n;)if(r=n.context,n=n.parent,r&&(s=!0,o=t.viewmodel.get(r),o&&("object"==typeof o||"function"==typeof o)&&i in o))return r.join(e.str);return W(t.viewmodel,i)?e:t.parent&&!t.isolated&&(s=!0,n=t.component.parentFragment,i=S(i),u=G(t.parent,i,n,!0))?(t.viewmodel.map(i,{origin:t.parent.viewmodel,keypath:u}),e):a||s?void 0:(t.viewmodel.set(e,void 0),e)}function z(t,e){var n;!t.parent||t.isolated||W(t.viewmodel,e)||(e=S(e),(n=G(t.parent,e,t.component.parentFragment,!0))&&t.viewmodel.map(e,{origin:t.parent.viewmodel,keypath:n}))}function W(t,e){return""===e||e in t.data||e in t.computations||e in t.mappings}function H(t){t.teardown()}function Q(t){t.unbind()}function K(t){t.unrender()}function Y(t){t.cancel()}function $(t){t.detach()}function J(t){t.detachNodes()}function X(t){!t.ready||t.outros.length||t.outroChildren||(t.outrosComplete||(t.parent?t.parent.decrementOutros(t):t.detachNodes(),t.outrosComplete=!0),t.intros.length||t.totalChildren||("function"==typeof t.callback&&t.callback(),t.parent&&t.parent.decrementTotal()))}function Z(){for(var t,e,n;ds.ractives.length;)e=ds.ractives.pop(),n=e.viewmodel.applyChanges(),n&&vs.fire(e,n);for(tt(),t=0;t=0;i--)r=t._subs[e[i]],r&&(s=vt(t,r,n,a)&&s);if(Gs.dequeue(t),t.parent&&s){if(o&&t.component){var u=t.component.name+"."+e[e.length-1];e=S(u).wildcardMatches(),n&&(n.component=t)}gt(t.parent,e,n,a)}}function vt(t,e,n,a){var r=null,i=!1;n&&!n._noArg&&(a=[n].concat(a)),e=e.slice();for(var o=0,s=e.length;s>o;o+=1)e[o].apply(t,a)===!1&&(i=!0);return n&&!n._noArg&&i&&(r=n.original)&&(r.preventDefault&&r.preventDefault(),r.stopPropagation&&r.stopPropagation()),!i}function bt(t){var e={args:Array.prototype.slice.call(arguments,1)};zs(this,t,e)}function yt(t){var e;return t=S(C(t)),e=this.viewmodel.get(t,Qs),void 0===e&&this.parent&&!this.isolated&&ls(this,t.str,this.component.parentFragment)&&(e=this.viewmodel.get(t)),e}function xt(e,n){if(!this.fragment.rendered)throw Error("The API has changed - you must call `ractive.render(target[, anchor])` to render your Ractive instance. Once rendered you can use `ractive.insert()`.");if(e=t(e),n=t(n)||null,!e)throw Error("You must specify a valid target to insert into");e.insertBefore(this.detach(),n),this.el=e,(e.__ractive_instances__||(e.__ractive_instances__=[])).push(this),this.detached=null,_t(this)}function _t(t){Ys.fire(t),t.findAllComponents("*").forEach(function(t){_t(t.instance)})}function wt(t,e,n){var a,r;return t=S(C(t)),a=this.viewmodel.get(t),i(a)&&i(e)?(r=bs.start(this,!0),this.viewmodel.merge(t,a,e,n),bs.end(),r):this.set(t,e,n&&n.complete)}function kt(t,e){var n,a;return n=E(t,e),a={},n.forEach(function(e){a[e.str]=t.get(e.str)}),a}function St(t,e,n,a){var r,i,o;e=S(C(e)),a=a||cu,e.isPattern?(r=new uu(t,e,n,a),t.viewmodel.patternObservers.push(r),i=!0):r=new Zs(t,e,n,a),r.init(a.init),t.viewmodel.register(e,r,i?"patternObservers":"observers"),r.ready=!0;var s={cancel:function(){var n;o||(i?(n=t.viewmodel.patternObservers.indexOf(r),t.viewmodel.patternObservers.splice(n,1),t.viewmodel.unregister(e,r,"patternObservers")):t.viewmodel.unregister(e,r,"observers"),o=!0)}};return t._observers.push(s),s}function Et(t,e,n){var a,r,i,o;if(p(t)){n=e,r=t,a=[];for(t in r)r.hasOwnProperty(t)&&(e=r[t],a.push(this.observe(t,e,n)));return{cancel:function(){for(;a.length;)a.pop().cancel()}}}if("function"==typeof t)return n=e,e=t,t="",pu(this,t,e,n);if(i=t.split(" "),1===i.length)return pu(this,t,e,n);for(a=[],o=i.length;o--;)t=i[o],t&&a.push(pu(this,t,e,n));return{cancel:function(){for(;a.length;)a.pop().cancel()}}}function Pt(t,e,n){var a=this.observe(t,function(){e.apply(this,arguments),a.cancel()},{init:!1,defer:n&&n.defer});return a}function Ct(t,e){var n,a=this;if(t)n=t.split(" ").map(du).filter(hu),n.forEach(function(t){var n,r;(n=a._subs[t])&&(e?(r=n.indexOf(e),-1!==r&&n.splice(r,1)):a._subs[t]=[])});else for(t in this._subs)delete this._subs[t];return this}function At(t,e){var n,a,r,i=this;if("object"==typeof t){n=[];for(a in t)t.hasOwnProperty(a)&&n.push(this.on(a,t[a]));return{cancel:function(){for(var t;t=n.pop();)t.cancel()}}}return r=t.split(" ").map(du).filter(hu),r.forEach(function(t){(i._subs[t]||(i._subs[t]=[])).push(e)}),{cancel:function(){return i.off(t,e)}}}function Ot(t,e){var n=this.on(t,function(){e.apply(this,arguments),n.cancel()});return n}function Tt(t,e,n){var a,r,i,o,s,u,p=[];if(a=Rt(t,e,n),!a)return null;for(r=t.length,s=a.length-2-a[1],i=Math.min(r,a[0]),o=i+a[1],u=0;i>u;u+=1)p.push(u);for(;o>u;u+=1)p.push(-1);for(;r>u;u+=1)p.push(u+s);return 0!==s?p.touchedFrom=a[0]:p.touchedFrom=t.length,p}function Rt(t,e,n){switch(e){case"splice":for(void 0!==n[0]&&n[0]<0&&(n[0]=t.length+Math.max(n[0],-t.length));n.length<2;)n.push(0);return n[1]=Math.min(n[1],t.length-n[0]),n;case"sort":case"reverse":return null;case"pop":return t.length?[t.length-1,1]:[0,0];case"push":return[t.length,0].concat(n);case"shift":return[0,t.length?1:0];case"unshift":return[0,0].concat(n)}}function Mt(e,n){var a,r,i,o=this;if(i=this.transitionsEnabled,this.noIntro&&(this.transitionsEnabled=!1),a=bs.start(this,!0),bs.scheduleTask(function(){return Ru.fire(o)},!0),this.fragment.rendered)throw Error("You cannot call ractive.render() on an already rendered instance! Call ractive.unrender() first");if(e=t(e)||this.el,n=t(n)||this.anchor,this.el=e,this.anchor=n,!this.append&&e){var s=e.__ractive_instances__;s&&s.length&&Lt(s),e.innerHTML=""}return this.cssId&&Ou.apply(),e&&((r=e.__ractive_instances__)?r.push(this):e.__ractive_instances__=[this],n?e.insertBefore(this.fragment.render(),n):e.appendChild(this.fragment.render())),bs.end(),this.transitionsEnabled=i,a.then(function(){return Mu.fire(o)})}function Lt(t){t.splice(0,t.length).forEach(H)}function jt(t,e){for(var n=t.slice(),a=e.length;a--;)~n.indexOf(e[a])||n.push(e[a]);return n}function Dt(t,e){var n,a,r;return a='[data-ractive-css~="{'+e+'}"]',r=function(t){var e,n,r,i,o,s,u,p=[];for(e=[];n=Iu.exec(t);)e.push({str:n[0],base:n[1],modifiers:n[2]});for(i=e.map(Ft),u=e.length;u--;)s=i.slice(),r=e[u],s[u]=r.base+a+r.modifiers||"",o=i.slice(),o[u]=a+" "+o[u],p.push(s.join(" "),o.join(" "));return p.join(", ")},n=qu.test(t)?t.replace(qu,a):t.replace(Fu,"").replace(Nu,function(t,e){var n,a;return Bu.test(e)?t:(n=e.split(",").map(Nt),a=n.map(r).join(", ")+" ",t.replace(e,a))})}function Nt(t){return t.trim?t.trim():t.replace(/^\s+/,"").replace(/\s+$/,"")}function Ft(t){return t.str}function It(t){t&&t.constructor!==Object&&("function"==typeof t||("object"!=typeof t?l("data option must be an object or a function, `"+t+"` is not valid"):m("If supplied, options.data should be a plain JavaScript object - using a non-POJO as the root object may work, but is discouraged")))}function Bt(t,e){It(e);var n="function"==typeof t,a="function"==typeof e;return e||n||(e={}),n||a?function(){var r=a?qt(e,this):e,i=n?qt(t,this):t;return Ut(r,i)}:Ut(e,t)}function qt(t,e){var n=t.call(e);if(n)return"object"!=typeof n&&l("Data function must return an object"),n.constructor!==Object&&g("Data function returned something other than a plain JavaScript object. This might work, but is strongly discouraged"),n}function Ut(t,e){if(t&&e){for(var n in e)n in t||(t[n]=e[n]);return t}return t||e}function Vt(t){var e=So(Ku);return e.parse=function(e,n){return Gt(e,n||t)},e}function Gt(t,e){if(!Hu)throw Error("Missing Ractive.parse - cannot parse template. Either preparse or use the version that includes the parser");return Hu(t,e||this.options)}function zt(t,e){var n;if(!Xi){if(e&&e.noThrow)return;throw Error("Cannot retrieve template #"+t+" as Ractive is not running in a browser.")}if(Wt(t)&&(t=t.substring(1)),!(n=document.getElementById(t))){if(e&&e.noThrow)return;throw Error("Could not find template element with id #"+t)}if("SCRIPT"!==n.tagName.toUpperCase()){if(e&&e.noThrow)return;throw Error("Template element with id #"+t+", must be a
    " dat += "" //Avert your eyes dat += "" diff --git a/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm b/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm index 69af4bf584..e60209cb7b 100644 --- a/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm +++ b/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm @@ -213,6 +213,7 @@ mob_size = MOB_SIZE_LARGE see_in_dark = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE + hud_type = /datum/hud/blobbernaut var/independent = FALSE /mob/living/simple_animal/hostile/blob/blobbernaut/Initialize() diff --git a/code/modules/antagonists/blob/blob/overmind.dm b/code/modules/antagonists/blob/blob/overmind.dm index 0f156e5216..7cf03466d2 100644 --- a/code/modules/antagonists/blob/blob/overmind.dm +++ b/code/modules/antagonists/blob/blob/overmind.dm @@ -21,6 +21,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) faction = list(ROLE_BLOB) lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE call_life = TRUE + hud_type = /datum/hud/blob_overmind var/obj/structure/blob/core/blob_core = null // The blob overmind's core var/blob_points = 0 var/max_blob_points = 100 diff --git a/code/modules/antagonists/brother/brother.dm b/code/modules/antagonists/brother/brother.dm index 8527ab533c..f63e81acbf 100644 --- a/code/modules/antagonists/brother/brother.dm +++ b/code/modules/antagonists/brother/brother.dm @@ -5,6 +5,7 @@ var/special_role = ROLE_BROTHER var/datum/team/brother_team/team antag_moodlet = /datum/mood_event/focused + can_hijack = HIJACK_HIJACKER /datum/antagonist/brother/create_team(datum/team/brother_team/new_team) if(!new_team) diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index ab6dd3607d..cc3b3a3057 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -167,7 +167,7 @@ to_chat(owner.current, "We have reached our capacity for abilities.") return - if(owner.current.has_trait(TRAIT_FAKEDEATH))//To avoid potential exploits by buying new powers while in stasis, which clears your verblist. + if(owner.current.has_trait(TRAIT_DEATHCOMA))//To avoid potential exploits by buying new powers while in stasis, which clears your verblist. to_chat(owner.current, "We lack the energy to evolve new abilities right now.") return diff --git a/code/modules/antagonists/changeling/changeling_power.dm b/code/modules/antagonists/changeling/changeling_power.dm index 6ae73336d4..ae255a04f8 100644 --- a/code/modules/antagonists/changeling/changeling_power.dm +++ b/code/modules/antagonists/changeling/changeling_power.dm @@ -65,7 +65,7 @@ if(req_stat < user.stat) to_chat(user, "We are incapacitated.") return 0 - if((user.has_trait(TRAIT_FAKEDEATH)) && (!ignores_fakedeath)) + if((user.has_trait(TRAIT_DEATHCOMA)) && (!ignores_fakedeath)) to_chat(user, "We are incapacitated.") return 0 return 1 diff --git a/code/modules/antagonists/changeling/powers/fakedeath.dm b/code/modules/antagonists/changeling/powers/fakedeath.dm index 80bd76d0d7..753d858cef 100644 --- a/code/modules/antagonists/changeling/powers/fakedeath.dm +++ b/code/modules/antagonists/changeling/powers/fakedeath.dm @@ -28,7 +28,7 @@ C.purchasedpowers += new /obj/effect/proc_holder/changeling/revive(null) /obj/effect/proc_holder/changeling/fakedeath/can_sting(mob/living/user) - if(user.has_trait(TRAIT_FAKEDEATH, "changeling")) + if(user.has_trait(TRAIT_DEATHCOMA, "changeling")) to_chat(user, "We are already reviving.") return if(!user.stat) //Confirmation for living changelings if they want to fake their death diff --git a/code/modules/antagonists/changeling/powers/revive.dm b/code/modules/antagonists/changeling/powers/revive.dm index d9c1ca7221..937748a7ef 100644 --- a/code/modules/antagonists/changeling/powers/revive.dm +++ b/code/modules/antagonists/changeling/powers/revive.dm @@ -33,7 +33,7 @@ if(!.) return - if(user.has_trait(CHANGELING_DRAIN) || ((user.stat != DEAD) && !(user.has_trait(TRAIT_FAKEDEATH)))) + if(user.has_trait(CHANGELING_DRAIN) || ((user.stat != DEAD) && !(user.has_trait(TRAIT_DEATHCOMA)))) var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) changeling.purchasedpowers -= src return FALSE diff --git a/code/modules/antagonists/clockcult/clock_effects/servant_blocker.dm b/code/modules/antagonists/clockcult/clock_effects/servant_blocker.dm index 0e6e1c3821..12b2af3f64 100644 --- a/code/modules/antagonists/clockcult/clock_effects/servant_blocker.dm +++ b/code/modules/antagonists/clockcult/clock_effects/servant_blocker.dm @@ -15,9 +15,7 @@ /obj/effect/clockwork/servant_blocker/Destroy(force) if(!force) return QDEL_HINT_LETMELIVE - var/turf/T = get_turf(src) - . = ..() - T.air_update_turf(TRUE) + return ..() /obj/effect/clockwork/servant_blocker/CanPass(atom/movable/M, turf/target) var/list/target_contents = M.GetAllContents() + M diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm index 8ed8edae8a..8411fe9bc9 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm @@ -22,12 +22,12 @@ if(GLOB.ratvar_awakens) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) clothing_flags |= STOPSPRESSUREDAMAGE - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT else if(GLOB.ratvar_approaches) armor = list("melee" = 70, "bullet" = 80, "laser" = -15, "energy" = 25, "bomb" = 70, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) clothing_flags |= STOPSPRESSUREDAMAGE - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT else armor = list("melee" = 60, "bullet" = 70, "laser" = -25, "energy" = 0, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) @@ -83,12 +83,12 @@ if(GLOB.ratvar_awakens) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) clothing_flags |= STOPSPRESSUREDAMAGE - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT else if(GLOB.ratvar_approaches) armor = list("melee" = 70, "bullet" = 80, "laser" = -15, "energy" = 25, "bomb" = 70, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) clothing_flags |= STOPSPRESSUREDAMAGE - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT else armor = list("melee" = 60, "bullet" = 70, "laser" = -25, "energy" = 0, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) @@ -149,7 +149,7 @@ if(GLOB.ratvar_awakens) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) clothing_flags |= STOPSPRESSUREDAMAGE - max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT else armor = list("melee" = 80, "bullet" = 70, "laser" = -25, "energy" = 0, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index f129ab9046..e2f57a82e3 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -79,7 +79,7 @@ return ..() /datum/action/innate/cult/mastervote/Activate() - var/choice = alert(owner, "The mantle of leadership is a heavy. Success in this role requires an expert level of communication and experience. Are you sure?",, "Yes", "No") + var/choice = alert(owner, "The mantle of leadership is heavy. Success in this role requires an expert level of communication and experience. Are you sure?",, "Yes", "No") if(choice == "Yes" && IsAvailable()) var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) pollCultists(owner,C.cult_team) diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index fa9bc50927..11757c975b 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -589,7 +589,7 @@ /obj/item/flashlight/flare/culttorch name = "void torch" - desc = "Used by veteran cultists to instantly transport items to their needful bretheren." + desc = "Used by veteran cultists to instantly transport items to their needful brethren." w_class = WEIGHT_CLASS_SMALL brightness_on = 1 icon_state = "torch" diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm index a9d59cb5cd..fcd7216602 100644 --- a/code/modules/antagonists/cult/cult_structures.dm +++ b/code/modules/antagonists/cult/cult_structures.dm @@ -221,7 +221,10 @@ var/turf/T = safepick(validturfs) if(T) - T.ChangeTurf(/turf/open/floor/engine/cult) + if(istype(T, /turf/open/floor/plating)) + T.PlaceOnTop(/turf/open/floor/engine/cult) + else + T.ChangeTurf(/turf/open/floor/engine/cult) else var/turf/open/floor/engine/cult/F = safepick(cultturfs) if(F) diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index df4715bc69..4513195804 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -618,9 +618,7 @@ structure_check() searches for nearby cultist structures required for the invoca to_chat(user, "The air above this rune has hardened into a barrier that will last [DisplayTimeText(TMR.timeToRun - world.time)].") /obj/effect/rune/wall/Destroy() - density = FALSE GLOB.wall_runes -= src - air_update_turf(1) return ..() /obj/effect/rune/wall/BlockSuperconductivity() diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm index 4e1175c13e..551c31ab97 100644 --- a/code/modules/antagonists/devil/true_devil/_true_devil.dm +++ b/code/modules/antagonists/devil/true_devil/_true_devil.dm @@ -21,6 +21,7 @@ held_items = list(null, null) bodyparts = list(/obj/item/bodypart/chest/devil, /obj/item/bodypart/head/devil, /obj/item/bodypart/l_arm/devil, /obj/item/bodypart/r_arm/devil, /obj/item/bodypart/r_leg/devil, /obj/item/bodypart/l_leg/devil) + hud_type = /datum/hud/devil var/ascended = FALSE var/mob/living/oldform var/list/devil_overlays[DEVIL_TOTAL_LAYERS] diff --git a/code/modules/antagonists/disease/disease_disease.dm b/code/modules/antagonists/disease/disease_disease.dm index 8ee36e8829..21d0381982 100644 --- a/code/modules/antagonists/disease/disease_disease.dm +++ b/code/modules/antagonists/disease/disease_disease.dm @@ -27,7 +27,7 @@ /datum/disease/advance/sentient_disease/IsSame(datum/disease/D) - if(istype(src, D.type)) + if(istype(D, /datum/disease/advance/sentient_disease)) var/datum/disease/advance/sentient_disease/V = D if(V.overmind == overmind) return TRUE diff --git a/code/modules/antagonists/disease/disease_mob.dm b/code/modules/antagonists/disease/disease_mob.dm index 6908c5eebf..a5a17daace 100644 --- a/code/modules/antagonists/disease/disease_mob.dm +++ b/code/modules/antagonists/disease/disease_mob.dm @@ -245,7 +245,7 @@ the new instance inside the host to be updated to the template's stats. /mob/camera/disease/proc/set_following(mob/living/L) following_host = L if(!move_listener) - move_listener = L.AddComponent(/datum/component/redirect, COMSIG_MOVABLE_MOVED, CALLBACK(src, .proc/follow_mob)) + move_listener = L.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, .proc/follow_mob))) else L.TakeComponent(move_listener) if(QDELING(move_listener)) diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index f1e1d92c9d..53f8aa2da1 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -12,6 +12,7 @@ var/list/name_source show_in_antagpanel = FALSE antag_moodlet = /datum/mood_event/focused + can_hijack = HIJACK_PREVENT /datum/antagonist/ert/on_gain() update_name() diff --git a/code/modules/antagonists/highlander/highlander.dm b/code/modules/antagonists/highlander/highlander.dm index 62da2df87f..1fa37f3a51 100644 --- a/code/modules/antagonists/highlander/highlander.dm +++ b/code/modules/antagonists/highlander/highlander.dm @@ -3,6 +3,7 @@ var/obj/item/claymore/highlander/sword show_in_antagpanel = FALSE show_name_in_check_antagonists = TRUE + can_hijack = HIJACK_HIJACKER /datum/antagonist/highlander/apply_innate_effects(mob/living/mob_override) var/mob/living/L = owner.current || mob_override diff --git a/code/modules/antagonists/ninja/ninja.dm b/code/modules/antagonists/ninja/ninja.dm index f157bc6080..a8bce90f1c 100644 --- a/code/modules/antagonists/ninja/ninja.dm +++ b/code/modules/antagonists/ninja/ninja.dm @@ -8,6 +8,11 @@ var/give_objectives = TRUE var/give_equipment = TRUE +/datum/antagonist/ninja/New() + if(helping_station) + can_hijack = HIJACK_PREVENT + . = ..() + /datum/antagonist/ninja/apply_innate_effects(mob/living/mob_override) var/mob/living/M = mob_override || owner.current update_ninja_icons_added(M) @@ -137,6 +142,8 @@ adj = "objectiveless" else return + if(helping_station) + can_hijack = HIJACK_PREVENT new_owner.assigned_role = ROLE_NINJA new_owner.special_role = ROLE_NINJA new_owner.add_antag_datum(src) diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index df9b35ee8b..e365f09b55 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -28,8 +28,8 @@ var/deconstruction_state = NUKESTATE_INTACT var/lights = "" var/interior = "" + var/proper_bomb = TRUE //Please var/obj/effect/countdown/nuclearbomb/countdown - var/static/bomb_set /obj/machinery/nuclearbomb/Initialize() . = ..() @@ -227,7 +227,6 @@ /obj/machinery/nuclearbomb/process() if(timing && !exploding) - bomb_set = TRUE if(detonation_timer < world.time) explode() else @@ -358,26 +357,23 @@ S.switch_mode_to(initial(S.mode)) S.alert = FALSE timing = FALSE - bomb_set = TRUE detonation_timer = null countdown.stop() update_icon() /obj/machinery/nuclearbomb/proc/set_active() - if(safety && !bomb_set) + if(safety) to_chat(usr, "The safety is still on.") return timing = !timing if(timing) previous_level = get_security_level() - bomb_set = TRUE detonation_timer = world.time + (timer_set * 10) for(var/obj/item/pinpointer/nuke/syndicate/S in GLOB.pinpointer_list) S.switch_mode_to(TRACK_INFILTRATOR) countdown.start() set_security_level("delta") else - bomb_set = FALSE detonation_timer = null set_security_level(previous_level) for(var/obj/item/pinpointer/nuke/syndicate/S in GLOB.pinpointer_list) @@ -460,6 +456,7 @@ /obj/machinery/nuclearbomb/beer name = "Nanotrasen-brand nuclear fission explosive" desc = "One of the more successful achievements of the Nanotrasen Corporate Warfare Division, their nuclear fission explosives are renowned for being cheap to produce and devastatingly effective. Signs explain that though this particular device has been decommissioned, every Nanotrasen station is equipped with an equivalent one, just in case. All Captains carefully guard the disk needed to detonate them - at least, the sign says they do. There seems to be a tap on the back." + proper_bomb = FALSE var/obj/structure/reagent_dispensers/beerkeg/keg /obj/machinery/nuclearbomb/beer/Initialize() @@ -498,7 +495,6 @@ addtimer(CALLBACK(src, .proc/fizzbuzz), 110) /obj/machinery/nuclearbomb/beer/proc/disarm() - bomb_set = FALSE detonation_timer = null exploding = FALSE exploded = TRUE diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index db25adcda4..af348dc34b 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -8,6 +8,7 @@ var/always_new_team = FALSE //If not assigned a team by default ops will try to join existing ones, set this to TRUE to always create new team. var/send_to_spawnpoint = TRUE //Should the user be moved to default spawnpoint. var/nukeop_outfit = /datum/outfit/syndicate + can_hijack = HIJACK_HIJACKER //Alternative way to wipe out the station. /datum/antagonist/nukeop/proc/update_synd_icons_added(mob/living/M) var/datum/atom_hud/antag/opshud = GLOB.huds[ANTAG_HUD_OPS] diff --git a/code/modules/antagonists/official/official.dm b/code/modules/antagonists/official/official.dm index 23bf472422..26de196cb4 100644 --- a/code/modules/antagonists/official/official.dm +++ b/code/modules/antagonists/official/official.dm @@ -4,6 +4,7 @@ show_in_antagpanel = FALSE var/datum/objective/mission var/datum/team/ert/ert_team + can_hijack = HIJACK_PREVENT /datum/antagonist/official/greet() to_chat(owner, "You are a CentCom Official.") diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm index 03150c0254..09371a7456 100644 --- a/code/modules/antagonists/revenant/revenant.dm +++ b/code/modules/antagonists/revenant/revenant.dm @@ -48,6 +48,7 @@ speed = 1 unique_name = TRUE hud_possible = list(ANTAG_HUD) + hud_type = /datum/hud/revenant var/essence = 75 //The resource, and health, of revenants. var/essence_regen_cap = 75 //The regeneration cap of essence (go figure); regenerates every Life() tick up to this amount. @@ -199,7 +200,7 @@ if(!essence) death() -/mob/living/simple_animal/revenant/dust() +/mob/living/simple_animal/revenant/dust(just_ash, drop_items, force) death() /mob/living/simple_animal/revenant/gib() diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm index d4d86cc087..cd0ebeea2c 100644 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ b/code/modules/antagonists/swarmer/swarmer.dm @@ -98,6 +98,7 @@ del_on_death = 1 deathmessage = "explodes with a sharp pop!" light_color = LIGHT_COLOR_CYAN + hud_type = /datum/hud/swarmer var/resources = 0 //Resource points, generated by consuming metal/glass var/max_resources = 100 diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 9066759648..47823a2dc4 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -13,6 +13,7 @@ var/should_give_codewords = TRUE var/should_equip = TRUE var/traitor_kind = TRAITOR_HUMAN //Set on initial assignment + can_hijack = HIJACK_HIJACKER /datum/antagonist/traitor/on_gain() if(owner.current && isAI(owner.current)) diff --git a/code/modules/antagonists/wishgranter/wishgranter.dm b/code/modules/antagonists/wishgranter/wishgranter.dm index 3f7fac9d18..318de51eb4 100644 --- a/code/modules/antagonists/wishgranter/wishgranter.dm +++ b/code/modules/antagonists/wishgranter/wishgranter.dm @@ -2,6 +2,7 @@ name = "Wishgranter Avatar" show_in_antagpanel = FALSE show_name_in_check_antagonists = TRUE + can_hijack = HIJACK_HIJACKER /datum/antagonist/wishgranter/proc/forge_objectives() var/datum/objective/hijack/hijack = new diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index c5bc0cc5f7..32322d339a 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -12,6 +12,7 @@ var/move_to_lair = TRUE var/outfit_type = /datum/outfit/wizard var/wiz_age = WIZARD_AGE_MIN /* Wizards by nature cannot be too young. */ + can_hijack = HIJACK_HIJACKER /datum/antagonist/wizard/on_gain() register() diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm index 6780f23677..51b0be95b6 100644 --- a/code/modules/assembly/doorcontrol.dm +++ b/code/modules/assembly/doorcontrol.dm @@ -55,7 +55,7 @@ if(specialfunctions & SHOCK) if(D.secondsElectrified) D.secondsElectrified = -1 - LAZYADD(D.shockedby, "\[[time_stamp()]\][usr](ckey:[usr.ckey])") + LAZYADD(D.shockedby, "\[[time_stamp()]\] [key_name(usr)]") add_logs(usr, D, "electrified") else D.secondsElectrified = 0 diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm index b5a7c5d3c5..b89a3f876d 100644 --- a/code/modules/assembly/flash.dm +++ b/code/modules/assembly/flash.dm @@ -1,3 +1,4 @@ +#define CONFUSION_STACK_MAX_MULTIPLIER 2 /obj/item/assembly/flash name = "flash" desc = "A powerful and versatile flashbulb device, with applications ranging from disorienting attackers to acting as visual receptors in robot production." @@ -108,7 +109,9 @@ to_chat(M, "[src] emits a blinding light!") if(targeted) if(M.flash_act(1, 1)) - M.confused += power + if(M.confused < power) + var/diff = power * CONFUSION_STACK_MAX_MULTIPLIER - M.confused + M.confused += min(power, diff) if(user) terrible_conversion_proc(M, user) visible_message("[user] blinds [M] with the flash!") @@ -125,7 +128,8 @@ to_chat(M, "[src] fails to blind you!") else if(M.flash_act()) - M.confused += power + var/diff = power * CONFUSION_STACK_MAX_MULTIPLIER - M.confused + M.confused += min(power, diff) /obj/item/assembly/flash/attack(mob/living/M, mob/user) if(!try_use_flash(user)) @@ -137,8 +141,9 @@ var/mob/living/silicon/robot/R = M add_logs(user, R, "flashed", src) update_icon(1) - M.Knockdown(rand(80,120)) - R.confused += 5 + R.Knockdown(rand(80,120)) + var/diff = 5 * CONFUSION_STACK_MAX_MULTIPLIER - M.confused + R.confused += min(5, diff) R.flash_act(affect_silicon = 1) user.visible_message("[user] overloads [R]'s sensors with the flash!", "You overload [R]'s sensors with the flash!") return TRUE diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 94359f0a10..57eda8202e 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -164,7 +164,7 @@ /obj/item/assembly/infra/proc/switchListener(turf/newloc) QDEL_NULL(listener) - listener = newloc.AddComponent(/datum/component/redirect, COMSIG_ATOM_EXITED, CALLBACK(src, .proc/check_exit)) + listener = newloc.AddComponent(/datum/component/redirect, list(COMSIG_ATOM_EXITED = CALLBACK(src, .proc/check_exit))) /obj/item/assembly/infra/proc/check_exit(atom/movable/offender) if(QDELETED(src)) diff --git a/code/modules/atmospherics/environmental/LINDA_system.dm b/code/modules/atmospherics/environmental/LINDA_system.dm index 268528355e..084c35684c 100644 --- a/code/modules/atmospherics/environmental/LINDA_system.dm +++ b/code/modules/atmospherics/environmental/LINDA_system.dm @@ -120,4 +120,5 @@ G.parse_gas_string(text) air.merge(G) + archive() SSair.add_to_active(src, 0) diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm index f2bb51159c..6e01181447 100644 --- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm +++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm @@ -28,6 +28,7 @@ GLOBAL_LIST_INIT(gaslist_cache, init_gaslist_cache()) var/volume = CELL_VOLUME //liters var/last_share = 0 var/list/reaction_results + var/list/analyzer_results //used for analyzer feedback - not initialized until its used /datum/gas_mixture/New(volume) gases = new @@ -427,14 +428,14 @@ GLOBAL_LIST_INIT(gaslist_cache, init_gaslist_cache()) for(var/r in SSair.gas_reactions) var/datum/gas_reaction/reaction = r - var/list/min_reqs = reaction.min_requirements.Copy() + var/list/min_reqs = reaction.min_requirements if((min_reqs["TEMP"] && temp < min_reqs["TEMP"]) \ || (min_reqs["ENER"] && ener < min_reqs["ENER"])) continue - min_reqs -= "TEMP" - min_reqs -= "ENER" for(var/id in min_reqs) + if (id == "TEMP" || id == "ENER") + continue if(!cached_gases[id] || cached_gases[id][MOLES] < min_reqs[id]) continue reaction_loop //at this point, all minimum requirements for the reaction are satisfied. diff --git a/code/modules/atmospherics/gasmixtures/gas_types.dm b/code/modules/atmospherics/gasmixtures/gas_types.dm index 9d0b5dd8a4..0787871ca4 100644 --- a/code/modules/atmospherics/gasmixtures/gas_types.dm +++ b/code/modules/atmospherics/gasmixtures/gas_types.dm @@ -74,7 +74,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g name = "Water Vapor" gas_overlay = "water_vapor" moles_visible = MOLES_GAS_VISIBLE - fusion_power = 4 + fusion_power = 8 /datum/gas/hypernoblium id = "nob" @@ -99,7 +99,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g gas_overlay = "nitryl" moles_visible = MOLES_GAS_VISIBLE dangerous = TRUE - fusion_power = 10 + fusion_power = 15 /datum/gas/tritium id = "tritium" @@ -115,7 +115,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g specific_heat = 20 name = "BZ" dangerous = TRUE - fusion_power = 15 + fusion_power = 8 /datum/gas/stimulum id = "stim" diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm index 39f979b41a..d1294be0fc 100644 --- a/code/modules/atmospherics/gasmixtures/reactions.dm +++ b/code/modules/atmospherics/gasmixtures/reactions.dm @@ -30,28 +30,37 @@ #define FUSION_RELEASE_ENERGY_MID 5e8 //Amount of energy released in the fusion process, mid tier #define FUSION_RELEASE_ENERGY_LOW 1e8 //Amount of energy released in the fusion process, low tier #define FUSION_MEDIATION_FACTOR 80 //Arbitrary -#define FUSION_SUPER_TIER 50 //anything above this is super tier -#define FUSION_HIGH_TIER 20 //anything above this and below 50 is high tier -#define FUSION_MID_TIER 5 //anything above this and below 20 is mid tier - below this is low tier, but that doesnt need a define -#define FUSION_ENERGY_DIVISOR_SUPER 25 +#define FUSION_SUPER_TIER_THRESHOLD 50 //anything above this is super tier +#define FUSION_HIGH_TIER_THRESHOLD 20 //anything above this and below 50 is high tier +#define FUSION_MID_TIER_THRESHOLD 5 //anything above this and below 20 is mid tier - below this is low tier, but that doesnt need a define +#define FUSION_ENERGY_DIVISOR_SUPER 25 //power_ratio is divided by this during energy calculations #define FUSION_ENERGY_DIVISOR_HIGH 20 #define FUSION_ENERGY_DIVISOR_MID 10 #define FUSION_ENERGY_DIVISOR_LOW 2 -#define FUSION_GAS_CREATION_FACTOR_SUPER 0.20 //stimulum and pluoxium - 40% in total -#define FUSION_GAS_CREATION_FACTOR_HIGH 0.60 //trit - one gas, so its higher than the other two - 60% in total -#define FUSION_GAS_CREATION_FACTOR_MID 0.45 //BZ and N2O - 90% in total -#define FUSION_GAS_CREATION_FACTOR_LOW 0.48 //O2 and CO2 - 96% in total +#define FUSION_GAS_CREATION_FACTOR_TRITIUM 0.40 //trit - one gas rather than two, so think about that when calculating stuff - 40% in total +#define FUSION_GAS_CREATION_FACTOR_STIM 0.05 //stim percentage creation from high tier - 5%, 60% in total with pluox +#define FUSION_GAS_CREATION_FACTOR_PLUOX 0.55 //pluox percentage creation from high tier - 55%, 60% in total with stim +#define FUSION_GAS_CREATION_FACTOR_NITRYL 0.20 //nitryl and N2O - 80% in total +#define FUSION_GAS_CREATION_FACTOR_N2O 0.60 //nitryl and N2O - 80% in total +#define FUSION_GAS_CREATION_FACTOR_BZ 0.05 //BZ - 5% - 90% in total with CO2 +#define FUSION_GAS_CREATION_FACTOR_CO2 0.85 //CO2 - 85% - 90% in total with BZ #define FUSION_MID_TIER_RAD_PROB_FACTOR 2 //probability of radpulse is power ratio * this for whatever tier #define FUSION_LOW_TIER_RAD_PROB_FACTOR 5 #define FUSION_EFFICIENCY_BASE 60 //used in the fusion efficiency calculations #define FUSION_EFFICIENCY_DIVISOR 0.6 //ditto #define FUSION_RADIATION_FACTOR 15000 //horizontal asymptote -#define FUSION_RADIATION_CONSTANT 30 //equation is form of (ax) / (x + b), where a = radiation factor and b = radiation constant (https://www.desmos.com/calculator/4i1f296phl) -#define FUSION_VOLUME_SUPER 100 //volume of the sound the fusion noises make -#define FUSION_VOLUME_HIGH 50 -#define FUSION_VOLUME_MID 25 -#define FUSION_VOLUME_LOW 10 - +#define FUSION_RADIATION_CONSTANT 30 //equation is form of (ax) / (x + b), where a = radiation factor and b = radiation constant and x = power ratio (https://www.desmos.com/calculator/4i1f296phl) +#define FUSION_ZAP_POWER_ASYMPTOTE 50000 //maximum value - not enough to instacrit but it'll still hurt like shit +#define FUSION_ZAP_POWER_CONSTANT 75 //equation is of from [ax / (x + b)] + c, where a = zap power asymptote, b = zap power constant, c = zap power base and x = power ratio +#define FUSION_ZAP_POWER_BASE 1000 //(https://www.desmos.com/calculator/vvbmhf4unm) +#define FUSION_ZAP_RANGE_SUPER 9 //range of the tesla zaps that occur from fusion +#define FUSION_ZAP_RANGE_HIGH 7 +#define FUSION_ZAP_RANGE_MID 5 +#define FUSION_ZAP_RANGE_LOW 3 +#define FUSION_PARTICLE_FACTOR_SUPER 4 //# of particles fired out is equal to rand(3,6) * this for whatever tier +#define FUSION_PARTICLE_FACTOR_HIGH 3 +#define FUSION_PARTICLE_FACTOR_MID 2 +#define FUSION_PARTICLE_FACTOR_LOW 1 /proc/init_gas_reactions() var/list/reaction_types = list() @@ -249,7 +258,10 @@ return cached_results["fire"] ? REACTING : NO_REACTION -//fusion: a terrible idea that was fun but broken. Now reworked to be less broken and more interesting. Again (and again). +//fusion: a terrible idea that was fun but broken. Now reworked to be less broken and more interesting. Again (and again, and again) +//Fusion Rework Counter: Please increment this if you make a major overhaul to this system again. +//5 reworks + /datum/gas_reaction/fusion exclude = FALSE priority = 2 @@ -268,6 +280,9 @@ /datum/gas_reaction/fusion/react(datum/gas_mixture/air, datum/holder) var/list/cached_gases = air.gases var/temperature = air.temperature + if(!air.analyzer_results) + air.analyzer_results = new + var/list/cached_scan_results = air.analyzer_results var/turf/open/location if (istype(holder,/datum/pipeline)) //Find the tile the reaction is occuring on, or a random part of the network if it's a pipenet. var/datum/pipeline/fusion_pipenet = holder @@ -280,70 +295,70 @@ var/mediation = FUSION_MEDIATION_FACTOR*(air.heat_capacity()-(cached_gases[/datum/gas/plasma][MOLES]*cached_gases[/datum/gas/plasma][GAS_META][META_GAS_SPECIFIC_HEAT]))/(air.total_moles()-cached_gases[/datum/gas/plasma][MOLES]) //This is the average specific heat of the mixture,not including plasma. - var/moles_excluding_plasma = air.total_moles() - cached_gases[/datum/gas/plasma][MOLES] - var/plasma_differential = (cached_gases[/datum/gas/plasma][MOLES] - moles_excluding_plasma) / air.total_moles() + var/gases_fused = air.total_moles() - cached_gases[/datum/gas/plasma][MOLES] + var/plasma_differential = (cached_gases[/datum/gas/plasma][MOLES] - gases_fused) / air.total_moles() var/reaction_efficiency = FUSION_EFFICIENCY_BASE ** -((plasma_differential ** 2) / FUSION_EFFICIENCY_DIVISOR) //https://www.desmos.com/calculator/6jjx3vdrvx - var/gases_fused = air.total_moles() var/gas_power = 0 - for (var/id in cached_gases) - gas_power += reaction_efficiency * (cached_gases[id][GAS_META][META_GAS_FUSION_POWER]*cached_gases[id][MOLES]) + for (var/gas_id in cached_gases) + gas_power += reaction_efficiency * (cached_gases[gas_id][GAS_META][META_GAS_FUSION_POWER]*cached_gases[gas_id][MOLES]) var/power_ratio = gas_power/mediation + cached_scan_results[id] = power_ratio //used for analyzer feedback + + for (var/gas_id in cached_gases) //and now we fuse + cached_gases[gas_id][MOLES] = 0 + var/radiation_power = (FUSION_RADIATION_FACTOR * power_ratio) / (power_ratio + FUSION_RADIATION_CONSTANT) //https://www.desmos.com/calculator/4i1f296phl + var/zap_power = ((FUSION_ZAP_POWER_ASYMPTOTE * power_ratio) / (power_ratio + FUSION_ZAP_POWER_CONSTANT)) + FUSION_ZAP_POWER_BASE //https://www.desmos.com/calculator/n0zkdpxnrr + var/do_explosion = FALSE + var/zap_range //these ones are set later + var/fusion_prepare_to_die_edition_rng - if (power_ratio > FUSION_SUPER_TIER) //power ratio 50+: SUPER TIER. The gases become so energized that they fuse into stimulum and pluoxium, which is pretty nice! IF you can salvage them, which is going to be hard because this reaction is ridiculously dangerous. + if (power_ratio > FUSION_SUPER_TIER_THRESHOLD) //power ratio 50+: SUPER TIER. The gases become so energized that they fuse into a ton of tritium, which is pretty nice! Until you consider the fact that everything just exploded, the canister is probably going to break and you're irradiated. reaction_energy += gases_fused * FUSION_RELEASE_ENERGY_SUPER * (power_ratio / FUSION_ENERGY_DIVISOR_SUPER) - for (var/id in cached_gases) - cached_gases[id][MOLES] = 0 - air.assert_gases(/datum/gas/stimulum,/datum/gas/pluoxium) - cached_gases[/datum/gas/stimulum][MOLES] += gases_fused * FUSION_GAS_CREATION_FACTOR_SUPER //60% of the gas is converted to energy, 40% to stimulum and pluoxium - cached_gases[/datum/gas/pluoxium][MOLES] += gases_fused * FUSION_GAS_CREATION_FACTOR_SUPER - if (location) //It's going to happen regardless of whether you want it to or not - radiation_pulse(location, radiation_power * 2) - explosion(location,0,0,10,power_ratio,TRUE,TRUE)//A decent explosion with a huge shockwave. People WILL know you're doing fusion. - playsound(location, 'sound/effects/supermatter.ogg', FUSION_VOLUME_SUPER, 0) - - else if (power_ratio > FUSION_HIGH_TIER) //power ratio 20-50; High tier. Fuses into one big atom which then turns to tritium instantly. Very dangerous, but super cool. - reaction_energy += gases_fused * FUSION_RELEASE_ENERGY_HIGH * (power_ratio / FUSION_ENERGY_DIVISOR_HIGH) - for (var/id in cached_gases) - cached_gases[id][MOLES] = 0 - cached_gases[/datum/gas/tritium][MOLES] += gases_fused * FUSION_GAS_CREATION_FACTOR_HIGH //40% of the gas is converted to energy, 60% to tritium - if (location) - if(prob(power_ratio)) //You really don't want this to happen. - radiation_pulse(location, radiation_power) - explosion(location,0,0,3,power_ratio * 0.5,TRUE,TRUE)//A tiny explosion with a large shockwave. People will know you're doing fusion. - playsound(location, 'sound/effects/supermatter.ogg', FUSION_VOLUME_HIGH, 0) - else - playsound(location, 'sound/effects/phasein.ogg', FUSION_VOLUME_HIGH, 0) + cached_gases[/datum/gas/tritium][MOLES] += gases_fused * FUSION_GAS_CREATION_FACTOR_TRITIUM //60% of the gas is converted to energy, 40% to trit + fusion_prepare_to_die_edition_rng = 100 //Wait a minute.. + do_explosion = TRUE + zap_range = FUSION_ZAP_RANGE_SUPER - else if (power_ratio > FUSION_MID_TIER) //power_ratio 5 to 20; Mediation is overpowered, fusion reaction starts to break down. + else if (power_ratio > FUSION_HIGH_TIER_THRESHOLD) //power ratio 20-50; High tier. The reaction is so energized that it fuses into a small amount of stimulum, and some pluoxium. Very dangerous, but super cool and super useful. + reaction_energy += gases_fused * FUSION_RELEASE_ENERGY_HIGH * (power_ratio / FUSION_ENERGY_DIVISOR_HIGH) + air.assert_gases(/datum/gas/stimulum, /datum/gas/pluoxium) + cached_gases[/datum/gas/stimulum][MOLES] += gases_fused * FUSION_GAS_CREATION_FACTOR_STIM //40% of the gas is converted to energy, 60% to stim and pluox + cached_gases[/datum/gas/pluoxium][MOLES] += gases_fused * FUSION_GAS_CREATION_FACTOR_PLUOX + fusion_prepare_to_die_edition_rng = power_ratio //Now we're getting into dangerous territory + do_explosion = TRUE + zap_range = FUSION_ZAP_RANGE_HIGH + + else if (power_ratio > FUSION_MID_TIER_THRESHOLD) //power_ratio 5 to 20; Mediation is overpowered, fusion reaction starts to break down. reaction_energy += gases_fused * FUSION_RELEASE_ENERGY_MID * (power_ratio / FUSION_ENERGY_DIVISOR_MID) - for (var/id in cached_gases) - cached_gases[id][MOLES] = 0 - air.assert_gases(/datum/gas/bz,/datum/gas/nitrous_oxide) - cached_gases[/datum/gas/bz][MOLES] += gases_fused * FUSION_GAS_CREATION_FACTOR_MID //10% of the gas is converted to energy, 90% to BZ and N2O - cached_gases[/datum/gas/nitrous_oxide][MOLES] += gases_fused * FUSION_GAS_CREATION_FACTOR_MID - if (location) - if(prob(power_ratio * FUSION_MID_TIER_RAD_PROB_FACTOR)) //Still weak, but don't stand next to it unprotected - radiation_pulse(location, radiation_power * 0.5) - playsound(location, 'sound/effects/supermatter.ogg', FUSION_VOLUME_MID, 0) - else - playsound(location, 'sound/effects/phasein.ogg', FUSION_VOLUME_MID, 0) + air.assert_gases(/datum/gas/nitryl,/datum/gas/nitrous_oxide) + cached_gases[/datum/gas/nitryl][MOLES] += gases_fused * FUSION_GAS_CREATION_FACTOR_NITRYL //20% of the gas is converted to energy, 80% to nitryl and N2O + cached_gases[/datum/gas/nitrous_oxide][MOLES] += gases_fused * FUSION_GAS_CREATION_FACTOR_N2O + fusion_prepare_to_die_edition_rng = power_ratio * FUSION_MID_TIER_RAD_PROB_FACTOR //Still unlikely, but don't stand next to the reaction unprotected + zap_range = FUSION_ZAP_RANGE_MID else //power ratio 0 to 5; Gas power is overpowered. Fusion isn't nearly as powerful. reaction_energy += gases_fused * FUSION_RELEASE_ENERGY_LOW * (power_ratio / FUSION_ENERGY_DIVISOR_LOW) - for (var/gas in cached_gases) - cached_gases[gas][MOLES] = 0 - air.assert_gases(/datum/gas/oxygen, /datum/gas/carbon_dioxide) - cached_gases[/datum/gas/oxygen][MOLES] += gases_fused * FUSION_GAS_CREATION_FACTOR_LOW //4% of the gas is converted to energy, 94% to oxygen and CO2 - cached_gases[/datum/gas/carbon_dioxide][MOLES] += gases_fused * FUSION_GAS_CREATION_FACTOR_LOW - if (location) - if(prob(power_ratio * FUSION_LOW_TIER_RAD_PROB_FACTOR)) //Weak, but still something to look out for - radiation_pulse(location, radiation_power * 0.25) - playsound(location, 'sound/effects/supermatter.ogg', FUSION_VOLUME_LOW, 0) - else - playsound(location, 'sound/effects/phasein.ogg', FUSION_VOLUME_LOW, 0) + air.assert_gases(/datum/gas/bz, /datum/gas/carbon_dioxide) + cached_gases[/datum/gas/bz][MOLES] += gases_fused * FUSION_GAS_CREATION_FACTOR_BZ //10% of the gas is converted to energy, 90% to BZ and CO2 + cached_gases[/datum/gas/carbon_dioxide][MOLES] += gases_fused * FUSION_GAS_CREATION_FACTOR_CO2 + fusion_prepare_to_die_edition_rng = power_ratio * FUSION_LOW_TIER_RAD_PROB_FACTOR //Low, but still something to look out for + zap_range = FUSION_ZAP_RANGE_LOW + + //All the deadly consequences of fusion, consolidated for your viewing pleasure + if (location) + if(prob(fusion_prepare_to_die_edition_rng)) //Some.. permanent effects + if(do_explosion) + explosion(location, 0, 0, 5, power_ratio, TRUE, TRUE) //large shockwave, the actual radius is quite small - people will recognize that you're doing fusion + radiation_pulse(location, radiation_power) //You mean causing a super-tier fusion reaction in the halls is a bad idea? + playsound(location, 'sound/effects/supermatter.ogg', 100, 0) + else + playsound(location, 'sound/effects/phasein.ogg', 75, 0) + //These will always happen, so be prepared + tesla_zap(location, zap_range, zap_power, TESLA_FUSION_FLAGS) //larpers beware + location.fire_nuclear_particles(power_ratio) //see code/modules/projectile/energy/nuclear_particle.dm if(reaction_energy > 0) var/new_heat_capacity = air.heat_capacity() diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index 6e6355ed72..fbee9e19c9 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -145,6 +145,12 @@ req_access = null req_one_access = list(ACCESS_ATMOSPHERICS, ACCESS_ENGINE) +/obj/machinery/airalarm/mixingchamber + name = "chamber air alarm" + locked = FALSE + req_access = null + req_one_access = list(ACCESS_ATMOSPHERICS, ACCESS_TOX, ACCESS_TOX_STORAGE) + /obj/machinery/airalarm/all_access name = "all-access air alarm" desc = "This particular atmos control unit appears to have no access restrictions." @@ -155,6 +161,22 @@ /obj/machinery/airalarm/syndicate //general syndicate access req_access = list(ACCESS_SYNDICATE) +/obj/machinery/airalarm/directional/north //Pixel offsets get overwritten on New() + dir = SOUTH + pixel_y = 24 + +/obj/machinery/airalarm/directional/south + dir = NORTH + pixel_y = -24 + +/obj/machinery/airalarm/directional/east + dir = WEST + pixel_x = 24 + +/obj/machinery/airalarm/directional/west + dir = EAST + pixel_x = -24 + //all air alarms in area are connected via magic /area var/list/air_vent_names = list() @@ -338,25 +360,25 @@ locked = !locked . = TRUE if("power", "toggle_filter", "widenet", "scrubbing") - send_signal(device_id, list("[action]" = params["val"])) + send_signal(device_id, list("[action]" = params["val"]), usr) . = TRUE if("excheck") - send_signal(device_id, list("checks" = text2num(params["val"])^1)) + send_signal(device_id, list("checks" = text2num(params["val"])^1), usr) . = TRUE if("incheck") - send_signal(device_id, list("checks" = text2num(params["val"])^2)) + send_signal(device_id, list("checks" = text2num(params["val"])^2), usr) . = TRUE if("set_external_pressure", "set_internal_pressure") var/area/A = get_area(src) var/target = input("New target pressure:", name, A.air_vent_info[device_id][(action == "set_external_pressure" ? "external" : "internal")]) as num|null if(!isnull(target) && !..()) - send_signal(device_id, list("[action]" = target)) + send_signal(device_id, list("[action]" = target), usr) . = TRUE if("reset_external_pressure") - send_signal(device_id, list("reset_external_pressure")) + send_signal(device_id, list("reset_external_pressure"), usr) . = TRUE if("reset_internal_pressure") - send_signal(device_id, list("reset_internal_pressure")) + send_signal(device_id, list("reset_internal_pressure"), usr) . = TRUE if("threshold") var/env = params["env"] @@ -373,9 +395,11 @@ tlv.vars[name] = -1 else tlv.vars[name] = round(value, 0.01) + investigate_log(" treshold value for [env]:[name] was set to [value] by [key_name(usr)]",INVESTIGATE_ATMOS) . = TRUE if("mode") mode = text2num(params["mode"]) + investigate_log("was turned to [get_mode_name(mode)] mode by [key_name(usr)]",INVESTIGATE_ATMOS) apply_mode() . = TRUE if("alarm") @@ -433,17 +457,39 @@ frequency = new_frequency radio_connection = SSradio.add_object(src, frequency, RADIO_TO_AIRALARM) -/obj/machinery/airalarm/proc/send_signal(target, list/command)//sends signal 'command' to 'target'. Returns 0 if no radio connection, 1 otherwise +/obj/machinery/airalarm/proc/send_signal(target, list/command, mob/user)//sends signal 'command' to 'target'. Returns 0 if no radio connection, 1 otherwise if(!radio_connection) return 0 var/datum/signal/signal = new(command) signal.data["tag"] = target signal.data["sigtype"] = "command" + signal.data["user"] = user radio_connection.post_signal(src, signal, RADIO_FROM_AIRALARM) return 1 +/obj/machinery/airalarm/proc/get_mode_name(mode_value) + switch(mode_value) + if(AALARM_MODE_SCRUBBING) + return "Filtering" + if(AALARM_MODE_CONTAMINATED) + return "Contaminated" + if(AALARM_MODE_VENTING) + return "Draught" + if(AALARM_MODE_REFILL) + return "Refill" + if(AALARM_MODE_PANIC) + return "Panic Siphon" + if(AALARM_MODE_REPLACEMENT) + return "Cycle" + if(AALARM_MODE_SIPHON) + return "Siphon" + if(AALARM_MODE_OFF) + return "Off" + if(AALARM_MODE_FLOOD) + return "Flood" + /obj/machinery/airalarm/proc/apply_mode() var/area/A = get_area(src) switch(mode) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index cca6c4d15a..9b69b2fa6f 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -294,7 +294,7 @@ user.visible_message("[user] places [I] in [src].", \ "You place [I] in [src].") var/reagentlist = pretty_string_from_reagent_list(I.reagents.reagent_list) - log_game("[key_name(user)] added an [I] to cyro containing [reagentlist]") + log_game("[key_name(user)] added an [I] to cryo containing [reagentlist]") return if(!on && !occupant && !state_open && (default_deconstruction_screwdriver(user, "pod-off", "pod-off", I)) \ || default_change_direction_wrench(user, I) \ diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm index ced4855b1a..5b37242c78 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm @@ -337,6 +337,8 @@ if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || (signal.data["sigtype"]!="command")) return + var/mob/signal_sender = signal.data["user"] + if("purge" in signal.data) pressure_checks &= ~EXT_BOUND pump_direction = SIPHONING @@ -352,7 +354,10 @@ on = !on if("checks" in signal.data) + var/old_checks = pressure_checks pressure_checks = text2num(signal.data["checks"]) + if(pressure_checks != old_checks) + investigate_log(" pressure checks were set to [pressure_checks] by [key_name(signal_sender)]",INVESTIGATE_ATMOS) if("checks_toggle" in signal.data) pressure_checks = (pressure_checks?0:NO_BOUND) @@ -361,10 +366,16 @@ pump_direction = text2num(signal.data["direction"]) if("set_internal_pressure" in signal.data) + var/old_pressure = internal_pressure_bound internal_pressure_bound = CLAMP(text2num(signal.data["set_internal_pressure"]),0,ONE_ATMOSPHERE*50) + if(old_pressure != internal_pressure_bound) + investigate_log(" internal pressure was set to [internal_pressure_bound] by [key_name(signal_sender)]",INVESTIGATE_ATMOS) if("set_external_pressure" in signal.data) + var/old_pressure = external_pressure_bound external_pressure_bound = CLAMP(text2num(signal.data["set_external_pressure"]),0,ONE_ATMOSPHERE*50) + if(old_pressure != external_pressure_bound) + investigate_log(" external pressure was set to [external_pressure_bound] by [key_name(signal_sender)]",INVESTIGATE_ATMOS) if("reset_external_pressure" in signal.data) external_pressure_bound = ONE_ATMOSPHERE diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm index 7a207cbed5..43a3b92510 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm @@ -241,6 +241,8 @@ if(!is_operational() || !signal.data["tag"] || (signal.data["tag"] != id_tag) || (signal.data["sigtype"]!="command")) return 0 + var/mob/signal_sender = signal.data["user"] + if("power" in signal.data) on = text2num(signal.data["power"]) if("power_toggle" in signal.data) @@ -251,10 +253,13 @@ if("toggle_widenet" in signal.data) widenet = !widenet + var/old_scrubbing = scrubbing if("scrubbing" in signal.data) scrubbing = text2num(signal.data["scrubbing"]) if("toggle_scrubbing" in signal.data) scrubbing = !scrubbing + if(scrubbing != old_scrubbing) + investigate_log(" was toggled to [scrubbing ? "scrubbing" : "siphon"] mode by [key_name(signal_sender)]",INVESTIGATE_ATMOS) if("toggle_filter" in signal.data) filter_types ^= gas_id2path(signal.data["toggle_filter"]) diff --git a/code/modules/atmospherics/machinery/other/meter.dm b/code/modules/atmospherics/machinery/other/meter.dm index b0afefd58a..b10ff85ba0 100644 --- a/code/modules/atmospherics/machinery/other/meter.dm +++ b/code/modules/atmospherics/machinery/other/meter.dm @@ -40,11 +40,15 @@ return ..() /obj/machinery/meter/proc/reattach_to_layer() + var/obj/machinery/atmospherics/candidate for(var/obj/machinery/atmospherics/pipe/pipe in loc) if(pipe.piping_layer == target_layer) - target = pipe - setAttachLayer(pipe.piping_layer) - break + candidate = pipe + if(pipe.level == 2) + break + if(candidate) + target = candidate + setAttachLayer(candidate.piping_layer) /obj/machinery/meter/proc/setAttachLayer(var/new_layer) target_layer = new_layer @@ -140,6 +144,5 @@ // why are you yelling? /obj/machinery/meter/turf -/obj/machinery/meter/turf/Initialize() - . = ..() +/obj/machinery/meter/turf/reattach_to_layer() target = loc diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 1c390ddc35..c1d3403c08 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -555,7 +555,7 @@ anchored = TRUE alpha = 255 -/obj/structure/trap/examine(mob/user) +/obj/structure/trap/ctf/examine(mob/user) return /obj/structure/trap/ctf/trap_effect(mob/living/L) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 0ee182d9f8..3763b8062b 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -224,6 +224,8 @@ death = FALSE roundstart = FALSE //you could use these for alive fake humans on roundstart but this is more common scenario +/obj/effect/mob_spawn/human/corpse/delayed + instant = FALSE //Non-human spawners @@ -336,10 +338,10 @@ /obj/effect/mob_spawn/human/miner name = "Shaft Miner" - outfit = /datum/outfit/job/miner/asteroid + outfit = /datum/outfit/job/miner /obj/effect/mob_spawn/human/miner/rig - outfit = /datum/outfit/job/miner/equipped/asteroid + outfit = /datum/outfit/job/miner/equipped/hardsuit /obj/effect/mob_spawn/human/miner/explorer outfit = /datum/outfit/job/miner/equipped diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index b3018d9d1c..a981fa95a5 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -563,6 +563,7 @@ armor = list("melee" = 20, "bullet" = 10, "laser" = 0,"energy" = 5, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25) cold_protection = CHEST|GROIN|ARMS|LEGS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + /obj/item/clothing/shoes/combat/coldres name = "insulated combat boots" desc = "High speed, low drag combat boots, now with an added layer of insulation." @@ -595,8 +596,8 @@ death = FALSE faction = ROLE_SYNDICATE outfit = /datum/outfit/snowsyndie - flavour_text = {"You are a syndicate operative recently awoken from cyrostatis in an underground outpost. Monitor Nanotrasen communications and record information. All intruders should be - disposed of swirfly to assure no gathered information is stolen or lost. Try not to wander too far from the outpost as the caves can be a deadly place even for a trained operative such as yourself."} + flavour_text = "You are a syndicate operative recently awoken from cryostasis in an underground outpost. Monitor Nanotrasen communications and record information. All intruders should be \ + disposed of swiftly to assure no gathered information is stolen or lost. Try not to wander too far from the outpost as the caves can be a deadly place even for a trained operative such as yourself." /datum/outfit/snowsyndie name = "Syndicate Snow Operative" diff --git a/code/modules/awaymissions/mission_code/spacebattle.dm b/code/modules/awaymissions/mission_code/spacebattle.dm index 5084663f5f..a477a223b2 100644 --- a/code/modules/awaymissions/mission_code/spacebattle.dm +++ b/code/modules/awaymissions/mission_code/spacebattle.dm @@ -40,3 +40,12 @@ /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/bsql/core/connection.dm b/code/modules/bsql/core/connection.dm index 3942557872..692d1333f0 100644 --- a/code/modules/bsql/core/connection.dm +++ b/code/modules/bsql/core/connection.dm @@ -4,17 +4,19 @@ BSQL_PROTECT_DATUM(/datum/BSQL_Connection) -/datum/BSQL_Connection/New(connection_type, asyncTimeout, blockingTimeout) +/datum/BSQL_Connection/New(connection_type, asyncTimeout, blockingTimeout, threadLimit) if(asyncTimeout == null) asyncTimeout = BSQL_DEFAULT_TIMEOUT if(blockingTimeout == null) blockingTimeout = asyncTimeout + if(threadLimit == null) + threadLimit = BSQL_DEFAULT_THREAD_LIMIT src.connection_type = connection_type world._BSQL_InitCheck(src) - var/error = world._BSQL_Internal_Call("CreateConnection", connection_type, "[asyncTimeout]", "[blockingTimeout]") + var/error = world._BSQL_Internal_Call("CreateConnection", connection_type, "[asyncTimeout]", "[blockingTimeout]", "[threadLimit]") if(error) BSQL_ERROR(error) return diff --git a/code/modules/bsql/core/library.dm b/code/modules/bsql/core/library.dm index b8e764a16d..3325768e01 100644 --- a/code/modules/bsql/core/library.dm +++ b/code/modules/bsql/core/library.dm @@ -17,6 +17,12 @@ BSQL_ERROR("Could not find [libPath]!") return + var/version = _BSQL_Internal_Call("Version") + if(version != BSQL_VERSION) + BSQL_DEL_CALL(caller) + BSQL_ERROR("BSQL DMAPI version mismatch! Expected [BSQL_VERSION], got [version == null ? "NULL" : version]!") + return + var/result = _BSQL_Internal_Call("Initialize") if(result) BSQL_DEL_CALL(caller) diff --git a/code/modules/cargo/bounties/assistant.dm b/code/modules/cargo/bounties/assistant.dm index 08bd74acad..e9bf9f0671 100644 --- a/code/modules/cargo/bounties/assistant.dm +++ b/code/modules/cargo/bounties/assistant.dm @@ -13,7 +13,7 @@ /datum/bounty/item/assistant/skateboard name = "Skateboard" - description = "Nanotrasen has determined walking to be a wasteful. Ship a skateboard to CentCom to speed operations up." + description = "Nanotrasen has determined walking to be wasteful. Ship a skateboard to CentCom to speed operations up." reward = 900 // the tony hawk wanted_types = list(/obj/vehicle/ridden/scooter/skateboard) @@ -141,6 +141,18 @@ reward = 3000 wanted_types = list(/obj/item/organ/tail/lizard) +/datum/bounty/item/assistant/cat_tail + name = "Cat Tail" + description = "Central Command has run out of heavy duty pipe cleaners. Can you ship over a cat tail to help us out?" + reward = 3000 + wanted_types = list(/obj/item/organ/tail/cat) + +/datum/bounty/item/assistant/tail_whip + name = "Nine Tails whip" + description = "Commander Jackson is looking for a fine addition to her exotic weapons collection. She will reward you handsomely for either a Cat or Liz o' Nine Tails." + reward = 4000 + wanted_types = list(/obj/item/melee/chainofcommand/tailwhip) + /datum/bounty/item/assistant/shard name = "Shards" description = "A killer clown has been stalking CentCom, and staff have been unable to catch her because she's not wearing shoes. Please ship some shards so that a booby trap can be constructed." @@ -150,23 +162,11 @@ /datum/bounty/item/assistant/comfy_chair name = "Comfy Chairs" - description = "Commander Pat is unhappy with his chair. He claims it hurts his back. Ship some alternatives out to humor him. " + description = "Commander Pat is unhappy with his chair. He claims it hurts his back. Ship some alternatives out to humor him." reward = 1500 required_count = 5 wanted_types = list(/obj/structure/chair/comfy) -/datum/bounty/item/assistant/revolver - name = "Revolver" - description = "Captain Johann of station 12 has challenged Captain Vic of station 11 to a duel. He's asked for help securing an appropriate revolver to use." - reward = 2000 - wanted_types = list(/obj/item/gun/ballistic/revolver) - -/datum/bounty/item/assistant/hand_tele - name = "Hand Tele" - description = "Central Command has come up with a genius idea: Why not teleport cargo rather than ship it? Send over a hand tele, receive payment, then wait 6-8 years while they deliberate." - reward = 2000 - wanted_types = list(/obj/item/hand_tele) - /datum/bounty/item/assistant/geranium name = "Geraniums" description = "Commander Zot has the hots for Commander Zena. Send a shipment of geraniums - her favorite flower - and he'll happily reward you." @@ -230,7 +230,7 @@ /datum/bounty/item/assistant/bonfire name = "Lit Bonfire" - description = "Space heaters are malfunctioning and the cargo crew of Central Command is starting to feel cold. Ship a lit bonfire to warm them up." + description = "Space heaters are malfunctioning and the cargo crew of Central Command is starting to feel cold. Ship a lit bonfire to warm them up." reward = 5000 wanted_types = list(/obj/structure/bonfire) @@ -240,21 +240,6 @@ var/obj/structure/bonfire/B = O return !!B.burning -/datum/bounty/item/assistant/plasma_tank - name = "Full Tank of Plasma" - description = "Station 12 has requested supplies to set up a singularity engine. In particular, they request 28 moles of plasma." - reward = 2500 - wanted_types = list(/obj/item/tank) - var/moles_required = 20 // A full tank is 28 moles, but CentCom ignores that fact. - -/datum/bounty/item/assistant/plasma_tank/applies_to(obj/O) - if(!..()) - return FALSE - var/obj/item/tank/T = O - if(!T.air_contents.gases[/datum/gas/plasma]) - return FALSE - return T.air_contents.gases[/datum/gas/plasma][MOLES] >= moles_required - /datum/bounty/item/assistant/corgimeat name = "Raw Corgi Meat" description = "The Syndicate recently stole all of CentCom's corgi meat. Ship out a replacement immediately." diff --git a/code/modules/cargo/bounties/engineering.dm b/code/modules/cargo/bounties/engineering.dm new file mode 100644 index 0000000000..8b73ebac4b --- /dev/null +++ b/code/modules/cargo/bounties/engineering.dm @@ -0,0 +1,31 @@ +/datum/bounty/item/engineering/gas + name = "Full Tank of Pluoxium" + description = "CentCom RnD is researching extra compact internals. Ship us a tank full of Pluoxium and you'll be compensated." + reward = 7500 + wanted_types = list(/obj/item/tank) + var/moles_required = 20 // A full tank is 28 moles, but CentCom ignores that fact. + var/gas_type = /datum/gas/pluoxium + +/datum/bounty/item/engineering/gas/applies_to(obj/O) + if(!..()) + return FALSE + var/obj/item/tank/T = O + if(!T.air_contents.gases[gas_type]) + return FALSE + return T.air_contents.gases[gas_type][MOLES] >= moles_required + +/datum/bounty/item/engineering/gas/nitryl_tank + name = "Full Tank of Nitryl" + description = "The non-human staff of Station 88 has been volunteered to test performance enhancing drugs. Ship them a tank full of Nitryl so they can get started." + gas_type = /datum/gas/nitryl + +/datum/bounty/item/engineering/gas/tritium_tank + name = "Full Tank of Tritium" + description = "Station 49 is looking to kickstart their research program. Ship them a tank full of Tritium." + gas_type = /datum/gas/tritium + +/datum/bounty/item/engineering/energy_ball + name = "Contained Tesla Ball" + description = "Station 24 is being overrun by hordes of angry Mothpeople. They are requesting the ultimate bug zapper." + reward = 75000 //requires 14k credits of purchases, not to mention cooperation with engineering/heads of staff to set up inside the cramped shuttle + wanted_types = list(/obj/singularity/energy_ball) diff --git a/code/modules/cargo/bounties/mech.dm b/code/modules/cargo/bounties/mech.dm index c331e97266..b7eac3499f 100644 --- a/code/modules/cargo/bounties/mech.dm +++ b/code/modules/cargo/bounties/mech.dm @@ -17,6 +17,12 @@ name = "APLU \"Ripley\"" reward = 13000 wanted_types = list(/obj/mecha/working/ripley) + exclude_types = list(/obj/mecha/working/ripley/firefighter) + +/datum/bounty/item/mech/firefighter + name = "APLU \"Firefighter\"" + reward = 18000 + wanted_types = list(/obj/mecha/working/ripley/firefighter) /datum/bounty/item/mech/odysseus name = "Odysseus" @@ -37,4 +43,3 @@ name = "Phazon" reward = 50000 wanted_types = list(/obj/mecha/combat/phazon) - diff --git a/code/modules/cargo/bounties/mining.dm b/code/modules/cargo/bounties/mining.dm new file mode 100644 index 0000000000..1b8b46734f --- /dev/null +++ b/code/modules/cargo/bounties/mining.dm @@ -0,0 +1,51 @@ +/datum/bounty/item/mining/goliath_steaks + name = "Lava-Cooked Goliath Steaks" + description = "Admiral Pavlov has gone on hunger strike ever since the canteen started serving only monkey and monkey byproducts. She is demanding lava-cooked Goliath steaks." + reward = 5000 + required_count = 3 + wanted_types = list(/obj/item/reagent_containers/food/snacks/meat/steak/goliath) + +/datum/bounty/item/mining/goliath_boat + name = "Goliath Hide Boat" + description = "Commander Menkov wants to participate in the annual Lavaland Regatta. He is asking your shipwrights to build the swiftest boat known to man." + reward = 10000 + wanted_types = list(/obj/vehicle/ridden/lavaboat) + +/datum/bounty/item/mining/bone_oar + name = "Bone Oars" + description = "Commander Menkov requires oars to participate in the annual Lavaland Regatta. Ship a pair over." + reward = 4000 + required_count = 2 + wanted_types = list(/obj/item/oar) + +/datum/bounty/item/mining/bone_axe + name = "Bone Axe" + description = "Station 12 has had their fire axes stolen by marauding clowns. Ship them a bone axe as a replacement." + reward = 7500 + wanted_types = list(/obj/item/twohanded/fireaxe/boneaxe) + +/datum/bounty/item/mining/bone_armor + name = "Bone Armor" + description = "Station 14 has volunteered their lizard crew for ballistic armor testing. Ship over some bone armor." + reward = 5000 + wanted_types = list(/obj/item/clothing/suit/armor/bone) + +/datum/bounty/item/mining/skull_helmet + name = "Skull Helmet" + description = "Station 42's Head of Security has her birthday tomorrow! We want to suprise her with a fashionable skull helmet." + reward = 4000 + wanted_types = list(/obj/item/clothing/head/helmet/skull) + +/datum/bounty/item/mining/bone_talisman + name = "Bone Talismans" + description = "Station 14's Research Director claims that pagan bone talismans protect their wearer. Ship them a few so they can start testing." + reward = 7500 + required_count = 3 + wanted_types = list(/obj/item/clothing/accessory/talisman) + +/datum/bounty/item/mining/bone_dagger + name = "Bone Daggers" + description = "Central Command's canteen is undergoing budget cuts. Ship over some bone daggers so our Chef can keep working." + reward = 5000 + required_count = 3 + wanted_types = list(/obj/item/kitchen/knife/combat/bone) diff --git a/code/modules/cargo/bounties/security.dm b/code/modules/cargo/bounties/security.dm index d4ef29e194..bcf7b89f3a 100644 --- a/code/modules/cargo/bounties/security.dm +++ b/code/modules/cargo/bounties/security.dm @@ -1,21 +1,3 @@ -/datum/bounty/item/security/headset - name = "Security Headset" - description = "Nanotrasen wants to ensure that their encryption is working correctly. Ship them a security headset so that they can check." - reward = 800 - wanted_types = list(/obj/item/radio/headset/headset_sec, /obj/item/radio/headset/heads/hos) - -/datum/bounty/item/security/securitybelt - name = "Security Belt" - description = "CentCom is having difficulties with their security belts. Ship one from the station to receive compensation." - reward = 800 - wanted_types = list(/obj/item/storage/belt/security) - -/datum/bounty/item/security/sechuds - name = "Security HUDSunglasses" - description = "CentCom screwed up and ordered the wrong type of security sunglasses. They request the station ship some of theirs." - reward = 800 - wanted_types = list(/obj/item/clothing/glasses/hud/security/sunglasses) - /datum/bounty/item/security/riotshotgun name = "Riot Shotguns" description = "Hooligans have boarded CentCom! Ship riot shotguns quick, or things are going to get dirty." @@ -23,40 +5,9 @@ required_count = 2 wanted_types = list(/obj/item/gun/ballistic/shotgun/riot) -/datum/bounty/item/security/pinpointer - name = "Nuclear Pinpointer" - description = "There's a teeny-tiny itty-bitty chance CentCom may have lost a nuke disk. Can the station spare a pinpointer to help out?" - reward = 1500 - wanted_types = list(/obj/item/pinpointer/nuke) - -/datum/bounty/item/security/captains_spare - name = "Captain's Spare" - description = "Captain Bart of Station 12 has forgotten his ID! Ship him your station's spare, would you?" - reward = 1500 - wanted_types = list(/obj/item/card/id/captains_spare) - -/datum/bounty/item/security/hardsuit - name = "Security Hardsuit" - description = "Space pirates are heading towards CentCom! Quick! Ship a security hardsuit to aid the fight!" - reward = 2000 - wanted_types = list(/obj/item/clothing/suit/space/hardsuit/security) - -/datum/bounty/item/security/krav_maga - name = "Krav Maga Gloves" - description = "Chef Howerwitz of CentCom is trying to take a kung-fu Pizza out of the oven, but his mitts aren't up to the task. Ship them a pair of Krav Maga gloves to do the job right." - reward = 2000 - wanted_types = list(/obj/item/clothing/gloves/krav_maga) - /datum/bounty/item/security/recharger name = "Rechargers" description = "Nanotrasen military academy is conducting marksmanship exercises. They request that rechargers be shipped." reward = 2000 required_count = 3 wanted_types = list(/obj/machinery/recharger) - -/datum/bounty/item/security/sabre - name = "Officer's Sabre" - description = "A 3-hour LARP session will be held at CentCom in the upcoming months. A shipped officer's sabre would make a good prop." - reward = 2500 - wanted_types = list(/obj/item/melee/sabre) - diff --git a/code/modules/cargo/bounty.dm b/code/modules/cargo/bounty.dm index 6153fd7678..0a150a077e 100644 --- a/code/modules/cargo/bounty.dm +++ b/code/modules/cargo/bounty.dm @@ -75,7 +75,7 @@ GLOBAL_LIST_EMPTY(bounties_list) // Returns a new bounty of random type, but does not add it to GLOB.bounties_list. /proc/random_bounty() - switch(rand(1, 9)) + switch(rand(1, 11)) if(1) var/subtype = pick(subtypesof(/datum/bounty/item/assistant)) return new subtype @@ -103,40 +103,61 @@ GLOBAL_LIST_EMPTY(bounties_list) if(9) var/subtype = pick(subtypesof(/datum/bounty/item/slime)) return new subtype + if(10) + var/subtype = pick(subtypesof(/datum/bounty/item/engineering)) + return new subtype + if(11) + var/subtype = pick(subtypesof(/datum/bounty/item/mining)) + return new subtype // Called lazily at startup to populate GLOB.bounties_list with random bounties. /proc/setup_bounties() - for(var/i = 0; i < 3; ++i) - var/subtype = pick(subtypesof(/datum/bounty/item/assistant)) - try_add_bounty(new subtype) - - for(var/i = 0; i < 1; ++i) - var/list/subtype = pick(subtypesof(/datum/bounty/item/mech)) - try_add_bounty(new subtype) - - for(var/i = 0; i < 2; ++i) - var/list/subtype = pick(subtypesof(/datum/bounty/item/chef)) - try_add_bounty(new subtype) - - for(var/i = 0; i < 1; ++i) - var/list/subtype = pick(subtypesof(/datum/bounty/item/security)) - try_add_bounty(new subtype) - - try_add_bounty(new /datum/bounty/reagent/simple_drink) - try_add_bounty(new /datum/bounty/reagent/complex_drink) - try_add_bounty(new /datum/bounty/reagent/chemical) - - for(var/i = 0; i < 1; ++i) - var/list/subtype = pick(subtypesof(/datum/bounty/virus)) - try_add_bounty(new subtype) + var/pick // instead of creating it a bunch let's go ahead and toss it here, we know we're going to use it for dynamics and subtypes! + + /********************************Subtype Gens********************************/ + var/list/easy_add_list_subtypes = list(/datum/bounty/item/assistant = 2, + /datum/bounty/item/mech = 1, + /datum/bounty/item/chef = 2, + /datum/bounty/item/security = 1, + /datum/bounty/virus = 1, + /datum/bounty/item/engineering = 1, + /datum/bounty/item/mining = 2) + + for(var/the_type in easy_add_list_subtypes) + for(var/i in 1 to easy_add_list_subtypes[the_type]) + pick = pick(subtypesof(the_type)) + try_add_bounty(new pick) + + /********************************Strict Type Gens********************************/ + var/list/easy_add_list_strict_types = list(/datum/bounty/reagent/simple_drink = 1, + /datum/bounty/reagent/complex_drink = 1, + /datum/bounty/reagent/chemical = 1) + + for(var/the_strict_type in easy_add_list_strict_types) + for(var/i in 1 to easy_add_list_strict_types[the_strict_type]) + try_add_bounty(new the_strict_type) + + /********************************Dynamic Gens********************************/ + + for(var/i in 0 to 1) + if(prob(50)) + pick = pick(subtypesof(/datum/bounty/item/slime)) + else + pick = pick(subtypesof(/datum/bounty/item/science)) + try_add_bounty(new pick) + + /********************************Cutoff for Non-Low Priority Bounties********************************/ var/datum/bounty/B = pick(GLOB.bounties_list) B.mark_high_priority() - // Generate these last so they can't be high priority. - try_add_bounty(new /datum/bounty/item/alien_organs) - try_add_bounty(new /datum/bounty/item/syndicate_documents) - try_add_bounty(new /datum/bounty/more_bounties) + /********************************Low Priority Gens********************************/ + var/list/low_priority_strict_type_list = list( /datum/bounty/item/alien_organs, + /datum/bounty/item/syndicate_documents, + /datum/bounty/more_bounties) + + for(var/low_priority_bounty in low_priority_strict_type_list) + try_add_bounty(new low_priority_bounty) /proc/completed_bounty_count() var/count = 0 diff --git a/code/modules/cargo/exports/tools.dm b/code/modules/cargo/exports/tools.dm index 024c93821a..2c2859d2e9 100644 --- a/code/modules/cargo/exports/tools.dm +++ b/code/modules/cargo/exports/tools.dm @@ -110,3 +110,23 @@ cost = 100 unit_name = "rapid piping device" export_types = list(/obj/item/pipe_dispenser) + +/datum/export/singulo //failsafe in case someone decides to ship a live singularity to CentCom without the corresponding bounty + cost = 1 + unit_name = "singularity" + export_types = list(/obj/singularity) + include_subtypes = FALSE + +/datum/export/singulo/total_printout() + . = ..() + if(.) + . += " ERROR: Invalid object detected." + +/datum/export/singulo/tesla //see above + unit_name = "energy ball" + export_types = list(/obj/singularity/energy_ball) + +/datum/export/singulo/tesla/total_printout() + . = ..() + if(.) + . += " ERROR: Unscheduled energy ball delivery detected." diff --git a/code/modules/cargo/expressconsole.dm b/code/modules/cargo/expressconsole.dm index c357aac5c5..6956579c0e 100644 --- a/code/modules/cargo/expressconsole.dm +++ b/code/modules/cargo/expressconsole.dm @@ -9,7 +9,7 @@ /obj/machinery/computer/cargo/express name = "express supply console" desc = "This console allows the user to purchase a package \ - with 1/40th of the delivery time: made possible by NanoTrasen's new \"1500mm Orbital Railgun\".\ + with 1/40th of the delivery time: made possible by Nanotrasen's new \"1500mm Orbital Railgun\".\ All sales are near instantaneous - please choose carefully" icon_screen = "supply_express" circuit = /obj/item/circuitboard/computer/cargo/express @@ -109,7 +109,7 @@ if(SSshuttle.supplyBlocked) message = blockade_warning if(usingBeacon && !beacon) - message = "BEACON ERROR: BEACON MISSING"//beacon was destroyed + message = "BEACON ERROR: BEACON MISSING"//beacon was destroyed else if (usingBeacon && !canBeacon) message = "BEACON ERROR: MUST BE EXPOSED"//beacon's loc/user's loc must be a turf if(obj_flags & EMAGGED) @@ -165,7 +165,7 @@ var/LZ if (istype(beacon) && usingBeacon)//prioritize beacons over landing in cargobay LZ = get_turf(beacon) - beacon.update_status(SP_LAUNCH) + beacon.update_status(SP_LAUNCH) else if (!usingBeacon)//find a suitable supplypod landing zone in cargobay landingzone = locate(/area/quartermaster/storage) in GLOB.sortedAreas if (!landingzone) @@ -177,7 +177,7 @@ LAZYADD(empty_turfs, T) CHECK_TICK if(empty_turfs && empty_turfs.len) - LZ = pick(empty_turfs) + LZ = pick(empty_turfs) if (SO.pack.cost <= SSshuttle.points && LZ)//we need to call the cost check again because of the CHECK_TICK call SSshuttle.points -= SO.pack.cost new /obj/effect/DPtarget(LZ, SO, podID) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 6e88990680..aae783ac33 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -460,7 +460,7 @@ /datum/supply_pack/security/armory/laserarmor name = "Reflector Vest Crate" - desc = "Contains two vests of highly reflective material. Each armor peice diffuses a laser's energy by over half, as well as offering a good chance to reflect the laser entirely. Requires Armory access to open." + desc = "Contains two vests of highly reflective material. Each armor piece diffuses a laser's energy by over half, as well as offering a good chance to reflect the laser entirely. Requires Armory access to open." cost = 2000 contains = list(/obj/item/clothing/suit/armor/laserproof, /obj/item/clothing/suit/armor/laserproof) @@ -1052,6 +1052,15 @@ /obj/item/storage/firstaid/o2) crate_name = "oxygen deprivation kit crate" +/datum/supply_pack/medical/surgery + name = "Surgical Supplies Crate" + desc = "Do you want to perform surgery, but don't have one of those fancy shmancy degrees? Just get started with this crate containing a medical duffelbag, Sterilizine spray and collapsible roller bed." + cost = 3000 + contains = list(/obj/item/storage/backpack/duffelbag/med/surgery, + /obj/item/reagent_containers/medspray/sterilizine, + /obj/item/roller) + crate_name = "surgical supplies 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." @@ -1072,13 +1081,14 @@ /obj/item/reagent_containers/blood/BPlus, /obj/item/reagent_containers/blood/BMinus, /obj/item/reagent_containers/blood/OPlus, - /obj/item/reagent_containers/blood/OMinus) + /obj/item/reagent_containers/blood/OMinus, + /obj/item/reagent_containers/blood/lizard) crate_name = "blood freezer" crate_type = /obj/structure/closet/crate/freezer /datum/supply_pack/medical/defibs name = "Defibrillator Crate" - desc = "Contains two defibrillators for bringing the recently-deceased back to life." + desc = "Contains two defibrillators for bringing the recently deceased back to life." cost = 2500 contains = list(/obj/item/defibrillator/loaded, /obj/item/defibrillator/loaded) @@ -1162,7 +1172,7 @@ /datum/supply_pack/science/robotics/mecha_odysseus name = "Circuit Crate (Odysseus)" - desc = "Ever wanted to build your own giant medical robot? Well now you can! Contains the Odysseus main control board and Odysseus peripherals board. Requires Robotics access to open." + desc = "Ever wanted to build your own giant medical robot? Well, now you can! Contains the Odysseus main control board and Odysseus peripherals board. Requires Robotics access to open." cost = 2500 access = ACCESS_ROBOTICS contains = list(/obj/item/circuitboard/mecha/odysseus/peripherals, @@ -1181,6 +1191,16 @@ crate_name = "\improper APLU Ripley circuit crate" crate_type = /obj/structure/closet/crate/secure/science +/datum/supply_pack/science/circuitry + name = "Circuitry Starter Pack Crate" + desc = "Journey into the mysterious world of Circuitry with this starter pack. Contains a circuit printer, analyzer, debugger and wirer. Power cells not included." + cost = 1000 + contains = list(/obj/item/integrated_electronics/analyzer, + /obj/item/integrated_circuit_printer, + /obj/item/integrated_electronics/debugger, + /obj/item/integrated_electronics/wirer) + crate_name = "circuitry starter pack crate" + /datum/supply_pack/science/plasma name = "Plasma Assembly Crate" desc = "Everything you need to burn something to the ground, this contains three plasma assembly sets. Each set contains a plasma tank, igniter, proximity sensor, and timer! Warranty void if exposed to high temperatures. Requires Toxins access to open." @@ -1257,6 +1277,18 @@ /datum/supply_pack/service group = "Service" +/datum/supply_pack/service/cargo_supples + name = "Cargo Supplies Crate" + desc = "Sold everything that wasn't bolted down? You can get right back to work with this crate containing stamps, an export scanner, destination tagger, hand labeler and some package wrapping." + cost = 1000 + contains = list(/obj/item/stamp, + /obj/item/stamp/denied, + /obj/item/export_scanner, + /obj/item/destTagger, + /obj/item/hand_labeler, + /obj/item/stack/packageWrap) + crate_name = "cargo supplies crate" + /datum/supply_pack/service/noslipfloor name = "High-traction Floor Tiles" desc = "Make slipping a thing of the past with thirty industrial-grade anti-slip floortiles!" @@ -1332,6 +1364,16 @@ /obj/item/flashlight/glowstick/pink) crate_name = "party equipment crate" +/datum/supply_pack/service/carpet + name = "Premium Carpet Crate" + desc = "Plasteel floor tiles getting on your nerves? These stacks of extra soft carpet will tie any room together." + cost = 1000 + 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) + crate_name = "premium carpet crate" + /datum/supply_pack/service/lightbulbs name = "Replacement Lights" desc = "May the light of Aether shine upon this station! Or at least, the light of forty two light tubes and twenty one light bulbs." @@ -1641,6 +1683,14 @@ qdel(D) new /mob/living/simple_animal/pet/dog/corgi/Lisa(.) +/datum/supply_pack/critter/corgis/exotic + name = "Exotic Corgi Crate" + desc = "Corgis fit for a king, these corgis come in a unique color to signify their superiority. Comes with a cute collar!" + cost = 5500 + contains = list(/mob/living/simple_animal/pet/dog/corgi/exoticcorgi, + /obj/item/clothing/neck/petcollar) + crate_name = "exotic corgi crate" + /datum/supply_pack/critter/cow name = "Cow Crate" desc = "The cow goes moo!" @@ -1739,13 +1789,14 @@ /obj/item/storage/pill_bottle/lsd, /obj/item/storage/pill_bottle/aranesp, /obj/item/storage/pill_bottle/stimulant, - /obj/item/toy/cards/deck/syndicate, + /obj/item/toy/cards/deck/syndicate, /obj/item/reagent_containers/food/drinks/bottle/absinthe, /obj/item/clothing/under/syndicate/tacticool, /obj/item/storage/fancy/cigarettes/cigpack_syndicate, /obj/item/storage/fancy/cigarettes/cigpack_shadyjims, /obj/item/clothing/mask/gas/syndicate, - /obj/item/clothing/neck/necklace/dope) + /obj/item/clothing/neck/necklace/dope, + /obj/item/vending_refill/donksoft) crate_name = "crate" /datum/supply_pack/costumes_toys/foamforce @@ -1942,14 +1993,14 @@ crate_name = "autodrobe supply crate" /datum/supply_pack/costumes_toys/wardrobes/cargo - name = "Cargo Department Supply Crate" + name = "Cargo Wardrobe Supply Crate" desc = "This crate contains a refill for the CargoDrobe." cost = 750 contains = list(/obj/item/vending_refill/wardrobe/cargo_wardrobe) crate_name = "cargo department supply crate" /datum/supply_pack/costumes_toys/wardrobes/engineering - name = "Engineering Department Wardrobe Supply Crate" + name = "Engineering Wardrobe Supply Crate" desc = "This crate contains refills for the EngiDrobe and AtmosDrobe." cost = 1500 contains = list(/obj/item/vending_refill/wardrobe/engi_wardrobe, @@ -1975,7 +2026,7 @@ crate_name = "hydrobe supply crate" /datum/supply_pack/costumes_toys/wardrobes/medical - name = "Medical Department Wardrobe Supply Crate" + name = "Medical Wardrobe Supply Crate" desc = "This crate contains refills for the MediDrobe, ChemDrobe, GeneDrobe, and ViroDrobe." cost = 3000 contains = list(/obj/item/vending_refill/wardrobe/medi_wardrobe, @@ -1985,7 +2036,7 @@ crate_name = "medical department wardrobe supply crate" /datum/supply_pack/costumes_toys/wardrobes/science - name = "Science Department Wardrobe Supply Crate" + name = "Science Wardrobe Supply Crate" desc = "This crate contains refills for the SciDrobe and RoboDrobe." cost = 1500 contains = list(/obj/item/vending_refill/wardrobe/robo_wardrobe, @@ -1993,7 +2044,7 @@ crate_name = "science department wardrobe supply crate" /datum/supply_pack/costumes_toys/wardrobes/security - name = "Security Department Supply Crate" + name = "Security Wardrobe Supply Crate" desc = "This crate contains refills for the SecDrobe and LawDrobe." cost = 1500 contains = list(/obj/item/vending_refill/wardrobe/sec_wardrobe, @@ -2090,6 +2141,16 @@ cost = 700 contains = list(/obj/item/storage/box/fountainpens) crate_type = /obj/structure/closet/crate/wooden + crate_name = "calligraphy crate" + +/datum/supply_pack/misc/wrapping_paper + name = "Festive Wrapping Paper Crate" + desc = "Want to mail your loved ones gift-wrapped chocolates, stuffed animals, the Clown's severed head? You can do all that, with this crate full of wrapping paper." + cost = 1000 + contains = list(/obj/item/stack/wrapping_paper) + crate_type = /obj/structure/closet/crate/wooden + crate_name = "festive wrapping paper crate" + /datum/supply_pack/misc/funeral name = "Funeral Supply crate" diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm index b57aebb2cd..53a05acaf2 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/client/asset_cache.dm @@ -225,6 +225,7 @@ GLOBAL_LIST_EMPTY(asset_datums) var/res_name = "spritesheet_[name].css" var/fname = "data/spritesheets/[res_name]" + fdel(fname) text2file(generate_css(), fname) register_asset(res_name, file(fname)) diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index 30e61dba1c..2dec6f8654 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -20,8 +20,8 @@ //OTHER// ///////// var/datum/preferences/prefs = null - var/move_delay = 1 - + var/last_turn = 0 + var/move_delay = 0 var/area = null /////////////// diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 6ecc63dc68..50595e7468 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -152,12 +152,6 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( GLOBAL_LIST_EMPTY(external_rsc_urls) #endif -/client/can_vv_get(var_name) - return var_name != NAMEOF(src, holder) && ..() - -/client/vv_edit_var(var_name, var_value) - return var_name != NAMEOF(src, holder) && ..() - /client/New(TopicData) var/tdata = TopicData //save this for later use chatOutput = new /datum/chatOutput(src) @@ -194,7 +188,7 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) if(CONFIG_GET(flag/enable_localhost_rank) && !connecting_admin) var/localhost_addresses = list("127.0.0.1", "::1") if(isnull(address) || (address in localhost_addresses)) - var/datum/admin_rank/localhost_rank = new("!localhost!", 65535, 16384, 65535) //+EVERYTHING -DBRANKS *EVERYTHING + var/datum/admin_rank/localhost_rank = new("!localhost!", R_EVERYTHING, R_DBRANKS, R_EVERYTHING) //+EVERYTHING -DBRANKS *EVERYTHING new /datum/admins(localhost_rank, ckey, 1, 1) //preferences datum - also holds some persistent data for the client (because we may as well keep these datums to a minimum) prefs = GLOB.preferences_datums[ckey] @@ -345,6 +339,7 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) send2irc_adminless_only("new_byond_user", "[key_name(src)] (IP: [address], ID: [computer_id]) is a new BYOND account [account_age] day[(account_age==1?"":"s")] old, created on [account_join_date].") get_message_output("watchlist entry", ckey) check_ip_intel() + validate_key_in_db() send_resources() @@ -490,7 +485,8 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) new_player = 1 account_join_date = sanitizeSQL(findJoinDate()) - var/datum/DBQuery/query_add_player = SSdbcore.NewQuery("INSERT INTO [format_table_name("player")] (`ckey`, `firstseen`, `firstseen_round_id`, `lastseen`, `lastseen_round_id`, `ip`, `computerid`, `lastadminrank`, `accountjoindate`) VALUES ('[sql_ckey]', Now(), '[GLOB.round_id]', Now(), '[GLOB.round_id]', INET_ATON('[sql_ip]'), '[sql_computerid]', '[sql_admin_rank]', [account_join_date ? "'[account_join_date]'" : "NULL"])") + var/sql_key = sanitizeSQL(key) + var/datum/DBQuery/query_add_player = SSdbcore.NewQuery("INSERT INTO [format_table_name("player")] (`ckey`, `byond_key`, `firstseen`, `firstseen_round_id`, `lastseen`, `lastseen_round_id`, `ip`, `computerid`, `lastadminrank`, `accountjoindate`) VALUES ('[sql_ckey]', '[sql_key]', Now(), '[GLOB.round_id]', Now(), '[GLOB.round_id]', INET_ATON('[sql_ip]'), '[sql_computerid]', '[sql_admin_rank]', [account_join_date ? "'[account_join_date]'" : "NULL"])") if(!query_add_player.Execute()) qdel(query_client_in_db) qdel(query_add_player) @@ -541,7 +537,7 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) /client/proc/findJoinDate() var/list/http = world.Export("http://byond.com/members/[ckey]?format=text") if(!http) - log_world("Failed to connect to byond age check for [ckey]") + log_world("Failed to connect to byond member page to age check [ckey]") return var/F = file2text(http["CONTENT"]) if(F) @@ -551,6 +547,32 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) else CRASH("Age check regex failed for [src.ckey]") +/client/proc/validate_key_in_db() + var/sql_ckey = sanitizeSQL(ckey) + var/sql_key + var/datum/DBQuery/query_check_byond_key = SSdbcore.NewQuery("SELECT byond_key FROM [format_table_name("player")] WHERE ckey = '[sql_ckey]'") + if(!query_check_byond_key.Execute()) + qdel(query_check_byond_key) + return + if(query_check_byond_key.NextRow()) + sql_key = query_check_byond_key.item[1] + qdel(query_check_byond_key) + if(key != sql_key) + var/list/http = world.Export("http://byond.com/members/[ckey]?format=text") + if(!http) + log_world("Failed to connect to byond member page to get changed key for [ckey]") + return + var/F = file2text(http["CONTENT"]) + if(F) + var/regex/R = regex("\\tkey = \"(.+)\"") + if(R.Find(F)) + var/web_key = sanitizeSQL(R.group[1]) + var/datum/DBQuery/query_update_byond_key = SSdbcore.NewQuery("UPDATE [format_table_name("player")] SET byond_key = '[web_key]' WHERE ckey = '[sql_ckey]'") + query_update_byond_key.Execute() + qdel(query_update_byond_key) + else + CRASH("Key check regex failed for [ckey]") + /client/proc/check_randomizer(topic) . = FALSE if (connection != "seeker") @@ -659,7 +681,7 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) qdel(query_get_notes) return qdel(query_get_notes) - create_message("note", ckey, system_ckey, message, null, null, 0, 0) + create_message("note", key, system_ckey, message, null, null, 0, 0) /client/proc/check_ip_intel() diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 678e7eccfa..2291d59646 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -125,7 +125,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) for(var/custom_name_id in GLOB.preferences_custom_names) custom_names[custom_name_id] = get_default_name(custom_name_id) - + UI_style = GLOB.available_ui_styles[1] if(istype(C)) if(!IsGuestKey(C.key)) @@ -399,33 +399,33 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "